3

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

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

4

1 回答 1

6

不同之处在于 linux 处理文件句柄而不是文件名。只要文件句柄有效,您就可以对其进行读写。

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

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

于 2013-05-23T11:26:32.107 回答