File 为什么O_追加是原子的
我了解到O_APPEND是原子的,从中我知道当大小低于PIPE_BUF时,O_APPEND是原子的 但是,为什么?在写追加之前,当前文件的偏移量必须更新到文件的末尾,如何对这两个原子进行分级操作File 为什么O_追加是原子的,file,unix,io,File,Unix,Io,我了解到O_APPEND是原子的,从中我知道当大小低于PIPE_BUF时,O_APPEND是原子的 但是,为什么?在写追加之前,当前文件的偏移量必须更新到文件的末尾,如何对这两个原子进行分级操作 感谢您的回答。最终使用锁或类似的互斥设施。基本上,write-in-append模式作为单个操作提交给内核,内核随后提供必要的联锁,以确保同一文件上的操作是不可分割的。请注意,原子性更像是一种尽力而为的服务,对于网络文件系统等可能会失败。@doynax非常感谢!
感谢您的回答。最终使用锁或类似的互斥设施。基本上,write-in-append模式作为单个操作提交给内核,内核随后提供必要的联锁,以确保同一文件上的操作是不可分割的。请注意,原子性更像是一种尽力而为的服务,对于网络文件系统等可能会失败。@doynax非常感谢!