系统相关
首页 > 系统相关> > 为什么可以在Linux中删除/重命名打开的文件?

为什么可以在Linux中删除/重命名打开的文件?

作者:互联网

我了解到无法在Windows中删除/重命名打开的文件,但可以在Linux中删除/重命名(默认情况下).我想我理解Windows行为的原因.

现在我想知道为什么Linux允许重新打开/删除打开的文件?这个决定背后的设计理由是什么?有需要的用例有哪些?

解决方法:

区别在于linux适用于文件句柄而不是文件名.只要文件句柄有效,您就可以读写它.

在linux中重命名文件不会改变文件句柄.

一个非常有趣的用例是打开它们后删除临时文件.
这使得每个其他进程都无法访问此文件,而拥有文件句柄的进程仍然可以读写.

标签:linux,language-agnostic,filesystems
来源: https://codeday.me/bug/20190825/1721749.html