Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 路径查找和写入并发问题_Linux_Concurrency_Path - Fatal编程技术网

Linux 路径查找和写入并发问题

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

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

一旦进程成功地调用了文件路径名上的
open
,它就会被分配一个文件描述符。此描述符与路径名不再有任何关系,因此,稍后当名称为
remove()
d时,仍然可以读取或写入文件。它还占用磁盘空间

你自己研究的更多关键词是:取消链接,硬链接

但是在打开文件之前,显然会发生这种情况,并且您不能保证连续两次调用
chmod
open
会影响同一个文件

这也是像
fstat
fchmod
fchdir
这样的函数存在的原因