【发布时间】:2011-12-19 06:50:27
【问题描述】:
在linux VFS中,这种情况是如何处理的:假设一个进程正在查找文件A..得到它的引用,同时文件A被另一个进程删除。第一个进程成功找到了A,但是当它想对它执行操作时,文件已经不存在了。
【问题讨论】:
标签: linux concurrency path
在linux VFS中,这种情况是如何处理的:假设一个进程正在查找文件A..得到它的引用,同时文件A被另一个进程删除。第一个进程成功找到了A,但是当它想对它执行操作时,文件已经不存在了。
【问题讨论】:
标签: linux concurrency path
一旦进程在文件的路径名上成功调用open,就会为其分配一个文件描述符。这个描述符和路径名已经没有关系了,所以当后面的名字是remove()d时,这个文件还是可以被读写的。它还占用磁盘空间。
您自己研究的其他关键字是:取消链接、硬链接。
但在打开文件之前,明显的事情会发生,你不能保证连续两次调用chmod或open会影响同一个文件。
这也是fstat或fchmod或fchdir等函数存在的原因。
【讨论】: