我有一个循环write(2)与任意数量的数据EOL和fsync(2)逐行附加到文件 .
这个过程的崩溃是否会让我有一个文件,其中一半的write(2)调用数据被写入文件?我的理论是,如果操作系统偶尔会调用fsync,那么在调用期间可能会出现巧合,写入(2)将文件的一半写入,而没有结束新行 .
是 . 即使没有崩溃,您可能会写一个部分行,因为 write 调用可能无法写入传递给它的所有数据 - 它可能会返回一个短写入 .
write
1 回答
是 . 即使没有崩溃,您可能会写一个部分行,因为
write
调用可能无法写入传递给它的所有数据 - 它可能会返回一个短写入 .