pwrite 如何防止数据被覆盖?

pwrite 如何防止数据被覆盖?

假设我们有两个进程 A 和 B。它们都想附加到同一个文件。两者都使用open(不使用)函数打开文件O_APPEND,并且它们都用于pwrite(fd, buf, bytes, offset)写入文件。

在这种情况下如何pwrite保证数据不会被覆盖,因为我必须解析文件末尾偏移量的位置?

答案1

它不能保证这一点。故事结束了,真的。

答案2

正如@Marcus Müller 所写:

它不能保证这一点。故事结束了,真的。

pwrite功能本身并不能保证在您描述的场景中防止数据覆盖。

为了防止数据覆盖,您需要实现其他机制,例如文件锁定、进程间通信或通过共享数据结构进行协调,以确保进程不会同时写入相同的偏移量。

相关内容