1

我有一个 write(2) 循环,其中包含任意数量的数据 + EOL 和一个 fsync(2) 逐行附加到文件中。

进程崩溃能否让我留下一个文件,该文件将 write(2) 调用中的一半数据写入文件?我的理论是,如果操作系统偶尔调用 fsync,那么在调用 write(2) 时可能会发生巧合,使文件只写了一半的行,而没有结束新行。

4

1 回答 1

1

是的。即使没有崩溃,您也可能会写入部分行,因为write调用可能不会写入传递给它的所有数据——它可能会返回一个简短的写入。

于 2014-05-29T16:56:06.967 回答