假设我有X进程打开文件Y进行追加。每个进程当时只写一行(带有\ n)(实际上是日志条目)。
是否保证每行不在文件Y中错误地交错?
更新:本地附加文件系统。
答案 0 :(得分:0)
问题取决于正在进行的写入类型。如果您正在使用具有缓冲的标准I / O(通常是大多数程序的默认值),则只有在写入多行后才会刷新缓冲区,并且刷新后的缓冲区不一定是整数行。如果你使用write(2)或者将默认的stdio缓冲更改为line或unbuffered,那么只要行的大小合理(当然行数小于512字节),它就会被正确交错。