为什么可以在Linux中删除/重命名打开的文件?
作者:互联网
我了解到无法在Windows中删除/重命名打开的文件,但可以在Linux中删除/重命名(默认情况下).我想我理解Windows行为的原因.
现在我想知道为什么Linux允许重新打开/删除打开的文件?这个决定背后的设计理由是什么?有需要的用例有哪些?
解决方法:
区别在于linux适用于文件句柄而不是文件名.只要文件句柄有效,您就可以读写它.
在linux中重命名文件不会改变文件句柄.
一个非常有趣的用例是打开它们后删除临时文件.
这使得每个其他进程都无法访问此文件,而拥有文件句柄的进程仍然可以读写.
标签:linux,language-agnostic,filesystems 来源: https://codeday.me/bug/20190825/1721749.html