システムインタフェース

ファイルの同期

fsync(3C) 関数と fdatasync(3RT) 関数は、ファイルを二次記憶領域と明示的に同期をとります。形式は次のようになります。

fsync(3C) は、入出力ファイルの保全完了レベルで関数の同期をとることを保証し、fdatasync(3RT) は、入出力データの保全完了レベルで関数の同期をとることを保証します。

アプリケーションは、操作が完了する前に各入出力操作の同期をとるように指定できます。open(2) または fcntl(2) によってファイル記述に O_DSYNC フラグを設定すると、操作が完了したと見なされる前にすべての入出力書き込み (write(2)aiowrite(3AIO)) が入出力データ完了に達します。ファイル記述に O_SYNC フラグを設定すると、操作が完了したと見なされる前に、すべての入出力書き込みが入出力ファイル完了に達します。ファイル記述に O_RSYNC フラグを設定すると、すべての入出力読み取り (read(2)aio_read(3RT)) が、O_DSYNC または O_SYNC を記述子に設定した書き込み要求と同じ完了レベルに達します。