从多个进程附加到单个文件的“线程安全”?

时间:2012-07-17 01:37:26

标签: linux file concurrency

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

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

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

1 个答案:

答案 0 :(得分:0)

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