OSDN Git Service

Update draft for LDP 3.67
[linuxjm/LDP_man-pages.git] / draft / man2 / msync.2
index 9d7db2e..18aa1bb 100644 (file)
@@ -44,9 +44,10 @@ msync \- ファイルをマップしたメモリと同期させる
 .sp
 \fBint msync(void *\fP\fIaddr\fP\fB, size_t \fP\fIlength\fP\fB, int \fP\fIflags\fP\fB);\fP
 .SH 説明
-\fBmsync\fP()  は \fBmmap\fP(2)  を使ってメモリにマップされたファイルの、 メモリ上のコピーになされた変更をディスクに反映させる。
-この関数を使用しないと、 \fBmunmap\fP(2)  が呼び出されるまで変更が書き戻される保証はない。 より正確には、ファイルのうち \fIaddr\fP
-から始まり長さ \fIlength\fP のメモリ領域に対応する部分が更新される。
+\fBmsync\fP()  は \fBmmap\fP(2)  を使ってメモリにマップされたファイルの、
+メモリ上のコピーになされた変更をファイルシステムに反映させる。 この関数を使用しないと、 \fBmunmap\fP(2)
+が呼び出されるまで変更が書き戻される保証はない。 より正確には、ファイルのうち \fIaddr\fP から始まり長さ \fIlength\fP
+のメモリ領域に対応する部分が更新される。
 
 \fIflags\fP 引数にはビット \fBMS_ASYNC\fP, \fBMS_SYNC\fP, \fBMS_INVALIDATE\fP を設定することができるが、
 \fBMS_ASYNC\fP と \fBMS_SYNC\fP を同時に指定することはできない。 \fBMS_ASYNC\fP
@@ -81,20 +82,18 @@ POSIX.1\-2001.
 (\fBsysconf\fP(3)  を参照すること。 )
 .SH 注意
 .\" commit 204ec841fbea3e5138168edbc3a76d46747cc987
-According to POSIX, either \fBMS_SYNC\fP or \fBMS_ASYNC\fP must be specified in
-\fIflags\fP, and indeed failure to include one of these flags will cause
-\fBmsync\fP()  to fail on some systems.  However, Linux permits a call to
-\fBmsync\fP()  that specifies neither of these flags, with semantics that are
-(currently) equivalent to specifying \fBMS_ASYNC\fP.  (Since Linux 2.6.19,
-\fBMS_ASYNC\fP is in fact a no\-op, since the kernel properly tracks dirty pages
-and flushes them to storage as necessary.)  Notwithstanding the Linux
-behavior, portable, future\-proof applications should ensure that they
-specify either \fBMS_SYNC\fP or \fBMS_ASYNC\fP in \fIflags\fP.
+POSIX では \fBMS_SYNC\fP と \fBMS_ASYNC\fP のいずれかは必ず \fIflags\fP に指定しなければならないとされており、
+実際にこれらのフラグのいずれかを指定しなかった場合 \fBmsync\fP() が失敗するシステムもある。 しかし、 Linux
+ではこれらのフラグのいずれも指定せずに \fBmsync\fP() を呼び出すことができ、 その場合の動作は (現在のところ) \fBMS_ASYNC\fP
+を指定した場合と等価である。 (Linux 2.6.19 以降では \fBMS_ASYNC\fP は実際には no\-op (何もしない命令) である。
+これはカーネルが正しく dirty ページを追跡し、必要に応じてストレージにそれらをフラッシュするからである。) Linux
+の動作に関係なく、アプリケーションの移植性を考慮し、将来も確実に動くようにするには、 \fBMS_SYNC\fP か \fBMS_ASYNC\fP のいずれかを必ず
+\fIflags\fP に指定するようにすべきである。
 .SH 関連項目
 \fBmmap\fP(2)
 
 B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128\-129 and 389\-391.
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。