【问题标题】:A path-lookup and write concurrency issue路径查找和写入并发问题
【发布时间】:2011-12-19 06:50:27
【问题描述】:

在linux VFS中,这种情况是如何处理的:假设一个进程正在查找文件A..得到它的引用,同时文件A被另一个进程删除。第一个进程成功找到了A,但是当它想对它执行操作时,文件已经不存在了。

【问题讨论】:

    标签: linux concurrency path


    【解决方案1】:

    一旦进程在文件的路径名上成功调用open,就会为其分配一个文件描述符。这个描述符和路径名已经没有关系了,所以当后面的名字是remove()d时,这个文件还是可以被读写的。它还占用磁盘空间。

    您自己研究的其他关键字是:取消链接、硬链接。

    但在打开文件之前,明显的事情会发生,你不能保证连续两次调用chmodopen会影响同一个文件。

    这也是fstatfchmodfchdir等函数存在的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 2021-02-06
      • 2011-03-29
      • 2011-11-27
      • 1970-01-01
      相关资源
      最近更新 更多