据我所知,每个进程都将维护一个单独的文件表(如果我的理解有误,请纠正)。因此,例如,同一文件以追加模式被多个进程同时打开,并且每个进程都向文件写入一些数据。它会被正确地附加到文件末尾。那么,有人能解释一下所有进程中的文件表如何同时更新吗?提前致谢。
我认为文件表没有被更新。只是文件系统在写入之前“寻找”到文件的末尾。由于允许不相关的进程同时写入文件的末尾,因此我相信必须涉及某种锁定,查找和实际写入不能被中断。这种追加模式非常适用于特定的文件系统,而不是操作系统的特性。我清楚地记得,在Linux上,如果文件位于NFS中,O_APPEND不能正常工作。