linux:写入文件的数据是否保证对其他进程可见?

jac*_*bsa 3 linux file linux-kernel

如果我使用write(2)Linux和后来写入一个文件从一个进程open(2)read(2)另一个进程中,我保证,看我不给呼叫写的数据fsync(2)close(2)

(请忽略文件名被取消链接或覆盖的可能性,或系统重新启动或另一个进程写入数据的可能性.并假设我在写入和读取之间正确建立了边缘.)

我知道数据不能保证保存在磁盘上,但是保证第二个进程可见吗?

jac*_*bsa 6

对于POSIX规范write明确规定了这一点:

如果在数据的write()之后可以证明(通过任何方式)文件数据的read(),它必须反映write(),即使调用是由不同的进程完成的.