通过多个进程以追加模式打开文件

时间:2011-07-09 07:08:16

标签: c operating-system

AFAIK每个进程都会保留单独的文件表(如果我的理解错误,请纠正我)。因此,例如,同时由多个进程在APPEND模式下打开相同的文件,并且每个进程都将一些数据写入文件。它会正确附加在文件末尾。那么任何人都可以解释我一次如何更新所有进程中的文件表吗?提前致谢

2 个答案:

答案 0 :(得分:4)

我认为文件表没有更新。只是文件系统在写入之前“寻找”到文件的末尾。

由于允许不相关的进程同时写入文件的末尾,我认为必须涉及某种锁定,不得中断查找和实际写入。

此附加模式是特定文件系统的一项功能,而不是操作系统的功能。我清楚地记得,在Linux上,如果文件驻留在NFS中,O_APPEND不能做正确的事情。

答案 1 :(得分:0)

APPEND模式的工作方式是在写入之前搜索文件的末尾(而不是在CURSOR位置写入,否则)。由于文件的末尾是文件的属性而不是文件表的属性,因此所有进程都将添加到文件的末尾。