【发布时间】:2010-11-17 17:09:35
【问题描述】:
在 unistd.h 中
使用带有 O_APPEND 标志的 open() 可以将原子写入始终写入文件末尾...
这很好,但是如果我需要知道它以原子方式附加到文件的偏移量怎么办...?
我意识到 O_APPEND 通常用于日志文件,但我实际上想知道它在文件中以原子方式附加的偏移量。
我没有看到任何明显的方法来做到这一点..?有人知道吗?
谢谢
【问题讨论】:
-
追加操作不是原子的,除非你写入无缓冲的数据,一次一个扇区。
-
如果设置了文件状态标志的 O_APPEND 标志,则文件偏移量应在每次写入之前设置为文件末尾,并且在更改文件偏移量和更改文件偏移量之间不会发生中间文件修改操作写操作。 opengroup.org/onlinepubs/009695399/functions/pwrite.html
标签: c++ c linux posix unistd.h