人手册说明write()系统调用是原子的。这是否意味着如果我有2个进程都将4 GB文本写入同一个文件,我可以假设第一次写入将写入其4 GB,然后第二次写入将完全写入其4 GB(假设使用了O_APPEND标志打开了该文件)?
或者操作系统会缓冲这两个写入操作,然后进行重复的write()调用,以便将所有8GB更改作为一系列小块写入?如果是这种情况,是否有任何关于这些块顺序的保证,还是来自第一个进程的块可以与来自另一个进程的块交错?
或者操作系统会缓冲这两个写入操作,然后进行重复的write()调用,以便将所有8GB更改作为一系列小块写入?如果是这种情况,是否有任何关于这些块顺序的保证,还是来自第一个进程的块可以与来自另一个进程的块交错?