4

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

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

或者

    fopen("file.txt", O_SYNCH)

这是在 Linux 上使用

4

1 回答 1

8

来自man 3 open

如果两者O_DSYNCO_RSYNC设置在 中oflag,则文件描述符上的所有 I/O 操作应按照同步 I/O 数据完整性完成的定义完成。

因此,正确的调用是

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

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

于 2012-10-26T01:47:08.427 回答