假设我们有两个进程 A 和 B。它们都想附加到同一个文件。两者都使用open
(不使用)函数打开文件O_APPEND
,并且它们都用于pwrite(fd, buf, bytes, offset)
写入文件。
在这种情况下如何pwrite
保证数据不会被覆盖,因为我必须解析文件末尾偏移量的位置?
答案1
它不能保证这一点。故事结束了,真的。
答案2
正如@Marcus Müller 所写:
它不能保证这一点。故事结束了,真的。
该pwrite
功能本身并不能保证在您描述的场景中防止数据覆盖。
为了防止数据覆盖,您需要实现其他机制,例如文件锁定、进程间通信或通过共享数据结构进行协调,以确保进程不会同时写入相同的偏移量。