C文件同步

标签 c file synchronization

我想在 C 中打开一个文件,其中读取和写入都是同步的。是正确的方法吗

    fopen("file.txt", O_DSYNCH | O_RSYNCH)

    fopen("file.txt", O_SYNCH)

这是在 Linux 上使用

最佳答案

来自man 3 open:

If both O_DSYNC and O_RSYNC are set in oflag, all I/O operations on the file descriptor shall complete as defined by synchronized I/O data integrity completion.

因此,正确的调用是

open("file.txt", O_DSYNC | O_RSYNC);

请注意,fopen 不采用 O_ 标志(它使用模式字符串,如 "r+"),因此您不能使用任何直接使用 O_*SYNC 选项。

关于C文件同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079694/

相关文章:

c - 我如何在 Linux 中获得类似 Sleep(0) 的行为

C文件读取循环总是中断

c++ - 哪种方法最适合从光驱中快速读取文件?

C# - 计算多个文件的总统计数据

c - 数据不会被写入 C 中的文件中

android - 具有离线和关系支持的跨平台同步解决方案

java - 在java中用两个线程打印HashMap的键?

c - 使用未声明的标识符 'RD16'

Delphi:从具有总体进度的文件夹中复制文件。复制文件Ex?

windows - 编写服务以保持两个文件夹同步?