OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man2 / fsync.2
index cb690c5..c611a55 100644 (file)
 .\"   Added `see also' section.
 .\" Modified 13 Apr 1996 by Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
 .\"   Added remarks about fdatasync.
-.\" Modified Fri Jan 31 16:27:42 1997 by Eric S. Raymond <esr@thyrsus.com>
 .\" Modified 31 Jan 1997 by Eric S. Raymond <esr@thyrsus.com>
 .\" Modified 18 Apr 2001 by Andi Kleen
 .\"   Fix description to describe what it really does; add a few caveats.
 .\" 2006-04-28, mtk, substantial rewrite of various parts.
+.\" 2012-02-27 Various changes by Christoph Hellwig <hch@lst.de>
 .\"
-.\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
-.\"         all rights reserved.
-.\" Translated 1997-02-22, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Modified 2001-05-19, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Updated 2005-09-06, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2006-07-30, Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2007-10-13, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.65
+.\"*******************************************************************
 .\"
-.\"WORD:       core                    メモリ
-.\"WORD:       disk                    ディスク
-.\"WORD:       synchronize             同期させる
-..\"
-.TH FSYNC 2 2008-11-07 "Linux" "Linux Programmer's Manual"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH FSYNC 2 2012\-02\-27 Linux "Linux Programmer's Manual"
 .SH 名前
 fsync \- メモリ上にあるファイルの内容をストレージデバイス上のものと同期させる
 .SH 書式
-.B #include <unistd.h>
+\fB#include <unistd.h>\fP
 .sp
-.BI "int fsync(int " fd );
+\fBint fsync(int \fP\fIfd\fP\fB);\fP
 .sp
-.BI "int fdatasync(int " fd );
+\fBint fdatasync(int \fP\fIfd\fP\fB);\fP
 .sp
 .in -4n
-glibc 向けの機能検査マクロの要件
-.RB ( feature_test_macros (7)
-参照):
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
 .in
 .sp
-.BR fsync ():
-_BSD_SOURCE || _XOPEN_SOURCE
+\fBfsync\fP(): _BSD_SOURCE || _XOPEN_SOURCE
 .br
+.\" _POSIX_C_SOURCE\ >=\ 200112L only since glibc 2.8
          || /* glibc 2.8 以降では: */ _POSIX_C_SOURCE\ >=\ 200112L
-.\" _POSIX_C_SOURCE\ >=\ 200112L は glibc 2.8 以降のみ
 .br
-.BR fdatasync ():
-_POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500
+\fBfdatasync\fP(): _POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500
 .SH 説明
-.BR fsync ()
-は、ファイル記述子
-.I fd
-で参照されるファイルの内部で持っているデータ
-(つまりバッファキャッシュページ) のうち修正されたデータを、
-そのファイルが属するディスクデバイス (またはその他の永続ストレージデバイス)
-に転送 (「フラッシュ」) する。
-この呼び出しは転送が終わったとデバイスが報告するまでブロックする。
-またファイルに結びついたメタデータ情報
-.RB ( stat (2)
-参照) もフラッシュする。
+\fBfsync\fP() は、ファイル記述子 \fIfd\fP で参照されるファイルの、メモリ内で存在す
+る修正されたデータ (つまり修正されたバッファキャッシュページ) を、ディスクデ
+バイス(またはその他の永続ストレージデバイス) に転送 (「フラッシュ」) し、これ
+により、システムがクラッシュしたり、再起動された後も、変更された全ての情報が
+取り出せるようになる。「フラッシュ」には、ライトスルー (write through) や
+(存在する場合には) ディスクキャッシュのフラッシュも含まれる。この呼び出しは
+転送が終わったとデバイスが報告するまでブロックする。またファイルに結びついた
+メタデータ情報 (\fBstat\fP(2) 参照) もフラッシュする。
+
+
+\fBfsync\fP()  の呼び出しは、ファイルが存在しているディレクトリのエントリがディスクへ 書き込まれたことを保証するわけではない。
+保証するためには明示的にそのディレクトリのファイル記述子に対しても \fBfsync\fP()  する必要がある。
 
-.BR fsync ()
-の呼び出しは、ファイルが存在しているディレクトリのエントリがディスクへ
-書き込まれたことを保証するわけではない。
-保証するためには明示的にそのディレクトリのファイル記述子に対しても
-.BR fsync ()
-する必要がある。
+\fBfdatasync\fP()  は \fBfsync\fP()  と同様であるが、メタデータの扱いが異なる。 \fBfdatasync\fP()
+は、それ以降のデータ読み込みを正しく扱うためにそのメタデータが必要に ならない限り、変更されたメタデータをフラッシュしない。 例えば、 st_atime
+や st_mtime (それぞれ最終アクセス時刻、最終修正時刻; \fBstat\fP(2)  参照) の変更はフラッシュを必要としない。
+なぜならこれらはそれ以降のデータ読み込みを正しく扱うために 必要ではないからである。 一方、ファイルサイズ (\fBftruncate\fP(2)  では
+\fIst_size\fP)  の変更はメタデータのフラッシュが必要である。
 
-.BR fdatasync ()
-は
-.BR fsync ()
-と同様であるが、メタデータの扱いが異なる。
-.BR fdatasync ()
-は、それ以降のデータ読み込みを正しく扱うためにそのメタデータが必要に
-ならない限り、変更されたメタデータをフラッシュしない。
-例えば、
-st_atime や st_mtime
-(それぞれ最終アクセス時刻、最終修正時刻;
-.BR stat (2)
-参照) の変更はフラッシュを必要としない。
-なぜならこれらはそれ以降のデータ読み込みを正しく扱うために
-必要ではないからである。
-一方、ファイルサイズ
-.RB ( ftruncate (2)
-では
-.IR st_size )
-の変更はメタデータのフラッシュが必要である。
-.BR fdatasync ()
-の狙いは、全てのメタデータをディスクと同期する必要のない
-アプリケーションに対して、ディスクアクセスを減らすことである。
+\fBfdatasync\fP()  の狙いは、全てのメタデータをディスクと同期する必要のない アプリケーションに対して、ディスクアクセスを減らすことである。
 .SH 返り値
-成功した場合、これらのシステムコールはゼロを返す。
-エラーの場合、\-1 が返され、
-.I errno
-が適切に設定される。
+成功した場合、これらのシステムコールはゼロを返す。 エラーの場合、\-1 が返され、 \fIerrno\fP が適切に設定される。
 .SH エラー
-.TP
-.B EBADF
-.I fd
-が書き込みのためにオープンされたファイル記述子でない。
-.TP
-.B EIO
+.TP 
+\fBEBADF\fP
+\fIfd\fP が有効なオープンされたディスクリプタでない。
+.TP 
+\fBEIO\fP
 同期操作の間にエラーが発生した。
-.TP
-.BR EROFS ", " EINVAL
-.I fd
-が同期操作をサポートしてない特殊なファイルを参照している。
+.TP 
+\fBEROFS\fP, \fBEINVAL\fP
+\fIfd\fP が同期操作をサポートしてない特殊なファイルを参照している。
 .SH 準拠
-4.3BSD, POSIX.1-2001.
+4.3BSD, POSIX.1\-2001.
 .SH 可用性
-.BR fdatasync ()
-が利用可能な POSIX システムでは、
-.B _POSIX_SYNCHRONIZED_IO
-が
-.I <unistd.h>
-で 0 より大きな値に定義される
-.RB ( sysconf (3)
-参照)。
 .\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L.
 .\" -1: unavailable, 0: ask using sysconf().
 .\" glibc defines them to 1.
+\fBfdatasync\fP()  が利用可能な POSIX システムでは、 \fB_POSIX_SYNCHRONIZED_IO\fP が
+\fI<unistd.h>\fP で 0 より大きな値に定義される (\fBsysconf\fP(3)  参照)。
 .SH 注意
-データベースやログファイルにアクセスするアプリケーションは、
-非常に小さなデータの断片の書き込みを行い、その後すぐに
-.BR fsync ()
-を呼び出して、書き込んだデータがハードディスクに物理的に
-確実に格納されるようにすることが多い。
-残念ながら、
-.BR fsync ()
-は常に 2つの書き込み操作を開始する。
-一つは新しく書き込まれたデータに対するものであり、
-もう一つは inode に格納される修正時刻 (modification time) を
-更新するためのものである。
-修正時刻の更新が不可分な操作 (トランザクション) の一部ではない場合、
-.BR fdatasync ()
-を使うことで、不必要な inode のディスク書き込み操作を避けることができる。
+(Linux はそうではないが) いくつかの UNIX システムでは
+\fIfd\fP が\fI書き込み可能な\fPファイルディスクリプタでなければならない。
 
-データが配置されているハードディスクの書き込みキャッシュが有効に
-なっている場合、
-.BR fsync ()
-/
-.BR fdatasync ()
-から戻ってきたとしても、そのデータは実際には永続的な記憶媒体に
-格納されていないかもしれない。
-.\" IDE ディスクのキャッシュを無効にする方法については
-.\" .BR hdparm (8)
-.\" を参照のこと。
-.LP
-ext2 ファイル・システムが
-.I sync
-オプションつきでマウントされている場合、
-.BR fsync ()
-でディレクトリ・エントリも暗黙のうちに同期する。
-.LP
-2.4 より前のカーネルでは巨大なファイルに
-.BR fsync ()
-を使用することは効率が悪い場合がある。
-別の方法として
-.BR open (2)
-の際に
-.B O_SYNC
-フラグを使用するのが良いかもしれない。
+Linux 2.2 以前では、 \fBfdatasync\fP()  は \fBfsync\fP()  と等価であり、性能面でのメリットはない。
 
-Linux 2.2 以前では、
-.BR fdatasync ()
-は
-.BR fsync ()
-と等価であり、性能面でのメリットはない。
+古いカーネルやあまり使われていないファイルシステムの \fBfsync\fP() の実装では、
+ディスクキャッシュをフラッシュする方法が分からない場合がある。そのような場合
+には、安全に操作が行われることを保証するため、\fBhdparm\fP(8) や \fBsdparm\fP(8) を
+使ってディスクキャッシュを無効にする必要がある。
 .SH 関連項目
-.BR bdflush (2),
-.BR open (2),
-.BR sync (2),
-.BR sync_file_range (2),
-.BR hdparm (8),
-.BR mount (8),
-.BR sync (8),
-.BR update (8)
+\fBbdflush\fP(2), \fBopen\fP(2), \fBsync\fP(2), \fBsync_file_range\fP(2), \fBhdparm\fP(8),
+\fBmount\fP(8), \fBsync\fP(8), \fBupdate\fP(8)