4

読み取りと書き込みの両方が同期されている C でファイルを開きたいと思います。適切な方法ですか

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

また

    fopen("file.txt", O_SYNCH)

これはLinuxで使用するためのものです

4

1 に答える 1

8

からman 3 open:

O_DSYNCとの両方O_RSYNCが に設定されている場合oflag、ファイル記述子に対するすべての I/O 操作は、同期 I/O データの整合性の完了によって定義されたとおりに完了する必要があります。

したがって、正しい呼び出しは

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

fopenはフラグを使用しないO_( のようなモード文字列を使用する"r+") ため、どのO_*SYNCオプションも直接使用できないことに注意してください。

于 2012-10-26T01:47:08.427 に答える