【发布时间】:2014-07-20 09:37:10
【问题描述】:
手册页声明 write() 系统调用是原子的。这是否意味着如果我有 2 个进程都将 4 GB 的文本写入同一个文件,我可以假设第一次写入将写入其 4 GB,然后第二次写入将其全部写入 4 GB(假设文件是用 O_APPEND 标志打开的)?
或者操作系统会缓冲两个写入,然后重复调用 write() 以便将完整的 8 GB 更改写入一系列小块?如果是这种情况,是否有任何关于这些块的顺序的保证,或者来自第一个进程的块是否可以与来自另一个进程的块交错?
【问题讨论】:
标签: linux