5

假设我有 X 进程打开文件 Y 进行追加。每个进程当时只写一行(带有\n)(真正的日志条目)。

是否保证每行不会在文件 Y 中错误地交错?

更新:本地附加文件系统。

4

1 回答 1

0

问题取决于正在进行的写入类型。如果您使用带缓冲的标准 I/O(这通常是大多数程序的默认设置),则缓冲区只会在写入几行后才会被刷新,并且在刷新时不一定是整数行。如果您正在使用 write(2) 或已将默认 stdio 缓冲更改为 line 或 unbuffered,那么只要行的大小合理(当然,如果行小于 512 字节),它可能会正确交错。

于 2012-07-17T02:00:15.600 回答