FSYNC(2) | Linux Programmer's Manual | FSYNC(2) |
名前
fsync -メモリ上にあるファイルの内容をストレージデバイス上のものと同期させる書式
#include <unistd.h>glibc 向けの機能検査マクロの要件 ( feature_test_macros(7) 参照):
|| /* glibc 2.8 以降では: */ _POSIX_C_SOURCE >= 200112L
説明
fsync() は、ファイル記述子 fd で参照されるファイルの、メモリ内で存在する修正されたデータ (つまり修正されたバッファキャッシュページ) を、ディスクデバイス(またはその他の永続ストレージデバイス) に転送 (「フラッシュ」) し、これにより、システムがクラッシュしたり、再起動された後も、変更された全ての情報が取り出せるようになる。「フラッシュ」には、ライトスルー (write through) や (存在する場合には) ディスクキャッシュのフラッシュも含まれる。この呼び出しは転送が終わったとデバイスが報告するまでブロックする。またファイルに結びついたメタデータ情報 ( stat(2) 参照) もフラッシュする。返り値
成功した場合、これらのシステムコールはゼロを返す。エラーの場合、-1 が返され、 errno が適切に設定される。エラー
- EBADF
- fd が有効なオープンされたディスクリプタでない。
- EIO
- 同期操作の間にエラーが発生した。
- EROFS, EINVAL
- fd が同期操作をサポートしてない特殊なファイルを参照している。
準拠
4.3BSD, POSIX.1-2001.可用性
fdatasync() が利用可能な POSIX システムでは、 _POSIX_SYNCHRONIZED_IO が <unistd.h> で 0 より大きな値に定義される ( sysconf(3) 参照)。注意
(Linux はそうではないが) いくつかの UNIX システムでは fd が 書き込み可能なファイルディスクリプタでなければならない。関連項目
bdflush(2), open(2), sync(2), sync_file_range(2), hdparm(8), mount(8), sync(8), update(8)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2012-02-27 | Linux |