锁定执行文件:Windows不支持,Linux不支持。为什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (100)

我注意到当文件在Windows(.exe或.dll)上执行时,它被锁定,不能被删除,移动或修改。

另一方面,Linux不会锁定正在执行的文件,您可以删除,移动或修改它们。

为什么Windows在Linux不锁定时锁定?锁定有优势吗?

提问于
用户回答回答于

Unix程序一直使用这种思考文件系统的方式,创建一个临时文件,打开它,删除名称。你的文件仍然存在,但是名字被释放以供其他人使用,并且没有其他人能够看到它。

用户回答回答于

Linux有一个引用计数机制,所以你可以在文件执行时删除文件,只要某个进程(之前打开它)有一个打开的句柄,它就会一直存在。该文件的目录条目在删除时将被删除,因此无法再打开该文件,但已使用此文件的进程仍然可以使用它。一旦所有使用此文件的进程终止,文件将自动删除。

扫码关注云+社区

领取腾讯云代金券