在 unistd.h 中
使用带有 O_APPEND 标志的 open() 可以始终对文件末尾进行原子写入...
这很好,但是如果我需要知道它自动附加到文件的偏移量怎么办...?
我知道 O_APPEND 通常用于日志文件,但实际上我想知道它以原子方式附加到文件中的什么偏移量。
我没有看到任何明显的方法来做到这一点..?有人知道吗?
谢谢
最佳答案
要获取文件描述符中的当前位置,请使用带偏移量 0
的 lseek()
以及 SEEK_CUR
的位置。
int fd = open(...);
if (fd) {
off_t positionWhereAppendingBegins = lseek(fd, 0, SEEK_CUR);
write(...);
close(fd);
}
请注意,如果以其他方式打开描述符,即通过 socket()
,这将不会为您提供可靠的结果。
关于c++ - 原子附加到文件描述符上,但偏移量是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4207106/