fsync または fsync_range サブルーチン
目的
ファイル内の変更内容を永続記憶装置に書き込みます。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <unistd.h>
int fsync ( FileDescriptor)
int FileDescriptor;
int fsync_range (FileDescriptor, how, start, length)
int FileDescriptor;
int how;
off_t start;
off_t length;
説明
fsync サブルーチンは、 FileDescriptor パラメーターで指定されたオープン・ファイル内のすべての変更されたデータを永続記憶域に保管します。 FSYNC サブルーチンからの戻り時に、すべての更新が永続記憶域に保管されました。
fsync_range サブルーチンにより、 FileDescriptor パラメーターで指定されたオープン・ファイルの、指定された範囲内にあるすべての変更されたデータが、永続記憶域に保管されます。 同期範囲 サブルーチンからの戻り時に、指定された範囲内のすべての更新が永続記憶域に保管されました。
この段落では、JFS ファイル・システムでのみ使用可能な非推奨の機能について説明します。 据え置き更新のために ( O_DEFER (定義者) フラグを使用して) プロセスがオープンしたファイルに書き込まれたデータは、別のプロセスがこのファイルに対して 同期範囲 または FSYNC 呼び出しを発行するか、このファイルに対して同期 書き込み サブルーチンを ( 同期 (O_SYNC) フラグを使用して) 実行するまで、永続記憶域に書き込まれません。 O_DEFER フラグと O_SYNC フラグの説明については、それぞれ fcntl.h ファイルと open サブルーチンを参照してください。
パラメーター
| 項目 | 説明 |
|---|---|
| FileDescriptor | 有効なオープン・ファイル記述子。 |
| どのように | 操作の処理特性を指定します。
|
| start | 開始ファイル・オフセット。 |
| length | 長さ、またはすべてのキャッシュ・データの場合はゼロ。 |
戻り値
正常終了すると、 FSYNC サブルーチンは値 0 を戻します。 そうでない場合は-1が返され、エラーを示すerrnoグローバル変数が設定される。
正常終了すると、 同期範囲 サブルーチンは値 0 を戻します。 そうでない場合は-1が返され、エラーを示すerrnoグローバル変数が設定される。
エラー・コード
以下の 1 つ以上が該当する場合、 FSYNC または 同期範囲 サブルーチンは失敗します。
| 項目 | 説明 |
|---|---|
| EIO | ファイル・システムの読み取り中または書き込み中に、入出力エラーが発生しました。 |
| EBADF | FileDescriptor パラメーターは、書き込み用にオープンされた有効なファイル記述子ではありません。 |
| EINVAL | ファイルは通常のファイルではありません。 |
| EINTR | サブルーチンがシグナルによって割り込まれました。 |