Linux 路径查找和写入并发问题
在LinuxVFS中,这种情况是如何处理的:假设一个进程正在查找一个文件a。得到了它的引用,同时文件a被另一个进程删除。第一个进程成功地找到了,但当它想对其执行操作时,文件不再存在。一旦进程成功地调用了文件路径名上的Linux 路径查找和写入并发问题,linux,concurrency,path,Linux,Concurrency,Path,在LinuxVFS中,这种情况是如何处理的:假设一个进程正在查找一个文件a。得到了它的引用,同时文件a被另一个进程删除。第一个进程成功地找到了,但当它想对其执行操作时,文件不再存在。一旦进程成功地调用了文件路径名上的open,它就会被分配一个文件描述符。此描述符与路径名不再有任何关系,因此,稍后当名称为remove()d时,仍然可以读取或写入文件。它还占用磁盘空间 你自己研究的更多关键词是:取消链接,硬链接 但是在打开文件之前,显然会发生这种情况,并且您不能保证连续两次调用chmod或open会
open
,它就会被分配一个文件描述符。此描述符与路径名不再有任何关系,因此,稍后当名称为remove()
d时,仍然可以读取或写入文件。它还占用磁盘空间
你自己研究的更多关键词是:取消链接,硬链接
但是在打开文件之前,显然会发生这种情况,并且您不能保证连续两次调用chmod
或open
会影响同一个文件
这也是像fstat
或fchmod
或fchdir
这样的函数存在的原因