boost 文件锁定(可共享和作用域 file_locks)的一般策略,以及我认为一般的文件锁定,是这样的:
- 打开
- 锁
- 对文件内容进行操作
- 解锁
- 关闭文件
但是,我将打开文件进行追加,并想调用 tellp 来查看我的位置。在上述情况下这样做安全吗?一旦文件在锁定之前打开并因此可能不 protected ,文件指针不会被设置吗?如果是这样,是否有一个标准的习语来解决这个问题?
最佳答案
这可能是特定于环境的,但在大多数平台上:
当打开文件进行追加时,文件指针会在每次写入前立即调整。因此,如果您在锁定文件之前使用 tellp
,它可能不会告诉您新添加的字节将去哪里,但是您不应该有两个使用锁定的进程仍然以某种方式附加相同范围的字节。
关于c++ - tellp 与文件锁定一起使用是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4673783/