OSDN Git Service

(split) LDP: draft snapshots from latest ja.po(s).
authorAkihiro MOTOKI <amotoki@gmail.com>
Wed, 30 May 2012 16:48:24 +0000 (01:48 +0900)
committerAkihiro MOTOKI <amotoki@gmail.com>
Wed, 30 May 2012 16:48:24 +0000 (01:48 +0900)
draft/man2/posix_fadvise.2 [new file with mode: 0644]
draft/man2/sync_file_range.2 [new file with mode: 0644]

diff --git a/draft/man2/posix_fadvise.2 b/draft/man2/posix_fadvise.2
new file mode 100644 (file)
index 0000000..3a2b904
--- /dev/null
@@ -0,0 +1,149 @@
+.\" Hey Emacs! This file is -*- nroff -*- source.
+.\"
+.\" Copyright 2003 Abhijit Menon-Sen <ams@wiw.org>
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date.  The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein.  The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" 2005-04-08 mtk, noted kernel version and added BUGS
+.\" 2010-10-09, mtk, document arm_fadvise64_64()
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH POSIX_FADVISE 2 2010\-10\-09 Linux "Linux Programmer's Manual"
+.SH 名前
+posix_fadvise \- ファイルデータのアクセスパターンをあらかじめ宣言する
+.SH 書式
+.nf
+\fB#include <fcntl.h>\fP
+.sp
+\fBint posix_fadvise(int \fP\fIfd\fP\fB, off_t \fP\fIoffset\fP\fB, off_t \fP\fIlen\fP\fB, int \fP\fIadvice\fP\fB);\fP
+.fi
+.sp
+.ad l
+.in -4n
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
+.in
+.sp
+\fBposix_fadvise\fP():
+.RS 4
+_XOPEN_SOURCE\ >=\ 600 || _POSIX_C_SOURCE\ >=\ 200112L
+.RE
+.ad
+.SH 説明
+プログラムは、将来特定のパターンでファイルデータに アクセスする意思を伝えるために \fBposix_fadvise\fP()  を使うことができる。
+これにより、カーネルが適切な最適化を実行することが可能になる。
+
+\fIadvice\fP は \fIfd\fP が参照しているファイルの \fIoffset\fP から始まる \fIlen\fP バイ
+トの範囲内 (\fIlen\fP が 0 の場合はファイルの終りまで) の (必ずしも存在しない)
+領域に適用される。 \fIadvice\fP は義務づけではない。 \fIadvice\fP は単にアプリケー
+ションのために可能性を構成するだけである。
+
+\fIadvice\fP に許される値には、以下のものが含まれる:
+.TP 
+\fBPOSIX_FADV_NORMAL\fP
+指定されたデータのアクセスパターンを指示するアドバイスを アプリケーションが何も持っていないことを示す。
+オープンされたファイルにアドバイスが指定されない場合、 これがデフォルトで仮定される。
+.TP 
+\fBPOSIX_FADV_SEQUENTIAL\fP
+アプリケーションは指定されたデータがシーケンシャルに (大きなオフセットの前に小さなオフセットのデータを読むように)  アクセスされることを期待する。
+.TP 
+\fBPOSIX_FADV_RANDOM\fP
+指定されたデータがランダムな順番でアクセスされる。
+.TP 
+\fBPOSIX_FADV_NOREUSE\fP
+指定されたデータは 1 度しかアクセスされない。
+.TP 
+\fBPOSIX_FADV_WILLNEED\fP
+指定されたデータは近い将来アクセスされる。
+.TP 
+\fBPOSIX_FADV_DONTNEED\fP
+指定されたデータは近い将来アクセスされない。
+.SH 返り値
+成功した場合は 0 が返される。 失敗した場合はエラー番号が返される。
+.SH エラー
+.TP 
+\fBEBADF\fP
+\fIfd\fP 引き数が有効なファイルディスクリプタでない。
+.TP 
+\fBEINVAL\fP
+無効な値が \fIadvice\fP に指定された。
+.TP 
+\fBESPIPE\fP
+指定されたファイルディスクリプタがパイプまたは FIFO を参照している (この場合、Linux は実際には \fBEINVAL\fP を返す)。
+.SH バージョン
+.\" of fadvise64_64()
+カーネルによるサポートは Linux 2.5.60 で最初に登場し、
+対応するシステムコールは \fBfadvise64\fP() という名前である。
+ライブラリによるサポートは glibc バージョン 2.2 以降で提供されており、
+ラッパー関数は \fBposix_fadvise\fP() という名前である。
+.SH 準拠
+POSIX.1\-2001.  \fIlen\fP 引き数の型が POSIX.1\-2003 TC1 において \fIsize_t\fP から \fIoff_t\fP
+に変更された点に注意すること。
+.SH 注意
+Linux では、\fBPOSIX_FADV_NORMAL\fP はバッキングデバイスの デフォルトサイズに先読み (readahead)
+ウインドウを設定する。 \fBPOSIX_FADV_SEQUENTIAL\fP はこのサイズを 2 倍し、 \fBPOSIX_FADV_RANDOM\fP
+は先読みを全く無効にする。 これらの変更はファイル全体に影響し、指定された領域のみに影響するわけではない
+(しかし同じファイルに対する他のオープンファイルハンドルは影響を受けない)。
+
+\fBPOSIX_FADV_WILLNEED\fP は、 ページキャッシュに指定領域のブロックされない読み込みを開始する。 読み込まれるデータの総量は、
+仮想メモリの負荷に依ってカーネルが減らすかもしれない (数メガバイトであれば通常は全く十分であり、 それより多くてもめったに役に立たない)。
+
+2.6.18 より前のカーネルでは、\fBPOSIX_FADV_NOREUSE\fP は \fBPOSIX_FADV_WILLNEED\fP と同じ意味であった。
+これは多分バグであった。 カーネル 2.6.18 以降では、このフラグは何も行わない。
+
+\fBPOSIX_FADV_DONTNEED\fP は指定された領域に関連付けられた キャッシュページを解放しようとする。
+例えば、これは大きなファイルをストリーミングするときに役立つ。 プログラムは、使用済みのキャッシュされたデータを解放するように、
+定期的にカーネルに要求するかもしれない。 そうすることにより、さらに有効なキャッシュされたページが、 代わりに破棄されることはない。
+
+まだ書き出されていないページは影響を受けないので、 そのページの解放が保証されることをアプリケーションが望んでいるなら、 最初に \fBfsync\fP(2)
+または \fBfdatasync\fP(2)  を呼ぶべきである。
+.SS arm_fadvise()
+ARM アーキテクチャでは、64 ビットの引き数は適切なレジスタの組に割り当て
+る必要がある。このアーキテクチャでは、\fBposix_fadvise\fP() の呼び出し方に
+は欠陥があり、それはこのシステムコールでは引き数 \fIfd\fP と \fIlen\fP の間の
+パディング (詰めもの) でレジスタが一つ消費されてしまうというものである。
+そのため、Linux 2.6.14 以降では、ARM では引き数が適切な順序になった別の
+システムコールが定義されている。
+.PP
+.in +4n
+.nf
+\fBlong arm_fadvise64_64(int \fP\fIfd\fP\fB, int \fP\fIadvice\fP\fB,\fP
+\fB                      loff_t \fP\fIoffset\fP\fB, loff_t \fP\fIlen\fP\fB);\fP
+.fi
+.in
+.PP
+.\" No ARM support in glibc.
+上記の点以外は、このシステムコールの動作は \fBposix_fadvise\fP() と全く
+同じである。このシステムコールに対するライブラリによるサポートは glibc
+では提供されていない。
+.SH バグ
+2.6.6 より前のカーネルでは、 \fIlen\fP に 0 が指定された場合、 「ファイルの終りまでの全てのバイト」という意味ではなく、 文字通り「0
+バイト」として解釈されていた。
+.SH 関連項目
+.\" FIXME . Write a posix_fadvise(3) page.
+\fBreadahead\fP(2), \fBsync_file_range\fP(2), \fBposix_fallocate\fP(3),
+\fBposix_madvise\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。
diff --git a/draft/man2/sync_file_range.2 b/draft/man2/sync_file_range.2
new file mode 100644 (file)
index 0000000..5e4f8b7
--- /dev/null
@@ -0,0 +1,159 @@
+.\" Hey Emacs! This file is -*- nroff -*- source.
+.\"
+.\" Copyright (c) 2006 Andrew Morton <akpm@osdl.org>
+.\" and Copyright 2006 Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date.  The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein.  The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" 2006-07-05 Initial creation, Michael Kerrisk based on
+.\"     Andrew Morton's comments in fs/sync.c
+.\" 2010-10-09, mtk, Document sync_file_range2()
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYNC_FILE_RANGE 2 2010\-10\-09 Linux "Linux Programmer's Manual"
+.SH 名前
+sync_file_range \- ファイルセグメントをディスクと同期する
+.SH 書式
+.nf
+\fB#define _GNU_SOURCE\fP         /* feature_test_macros(7) 参照 */
+\fB#include <fcntl.h>\fP
+
+\fBint sync_file_range(int \fP\fIfd\fP\fB, off64_t \fP\fIoffset\fP\fB, off64_t \fP\fInbytes\fP\fB,\fP
+\fB                    unsigned int \fP\fIflags\fP\fB);\fP
+.fi
+.SH 説明
+\fBsync_file_range\fP()  を使うと、ファイルディスクリプタ \fIfd\fP で参照されるオープンされたファイルのディスクとの同期に関して、
+きめ細かな制御が可能となる。
+
+\fIoffset\fP は、同期を行うファイルの領域の開始バイトである。 \fInbytes\fP には同期を行う領域の長さをバイト単位で指定する。
+\fInbytes\fP が 0 の場合は、 \fIoffset\fP からファイル末尾までの全バイトを同期する。 同期はシステムのページサイズの単位で行われる。
+\fIoffset\fP はページ境界にあわせて切り下げられ、 \fI(offset+nbytes\-1)\fP はページ境界にあわせて切り上げられる。
+
+ビットマスク引き数 \fIflags\fP には以下の値を指定することができる:
+.TP 
+\fBSYNC_FILE_RANGE_WAIT_BEFORE\fP
+何らかの書き込みを行う前に、指定された領域のページで 書き出しを行うようにデバイスドライバにすでに要求が発行されている
+ページの書き出しが全て完了するのを待つ。
+.TP 
+\fBSYNC_FILE_RANGE_WRITE\fP
+指定された領域のページで、書き出し要求が発行されていない 全ての dirty (キャッシュだけが変更されている) ページの 書き出しを開始する。
+リクエストキューの大きさより多く書き込もうとした場合には、 この処理は停止 (block) する可能性がある点に注意すること。
+.TP 
+\fBSYNC_FILE_RANGE_WAIT_AFTER\fP
+何らかの書き込み後に、指定された領域の全てのページの 書き出しが行われるのを待つ。
+.PP
+\fIflags\fP に 0 を指定した場合、何もしないことを表す。
+.SS 警告
+このシステムコールは非常に危険であり、 移植性が必要なプログラムで使用すべきではない。 これらの操作ではどれもファイルのメタデータの書き出しを行わない。
+したがって、アプリケーションにより作成済みのディスクブロックの 上書きの実行が確実に行われない限り、クラッシュの後でもデータが 利用できる保証はない。
+書き込みが上書きだけであるかを知るためのユーザインタフェースは存在しない。 (\fIbtrfs\fP などの) copy\-on\-write
+動作を使ったファイルシステムでは、 既存の割り当て済みのブロックに対する上書き自体ができない。 前もって割り当てられた領域に書き込みを行う場合、
+多くのファイルシステムでは block allocator への書き込みも必要となるが、 このシステムコールは block allocator
+のディスクへの同期を行わない。 このシステムコールはディスク書き込みキャッシュのフラッシュを
+行わないので、揮発性のディスク書き込みキャッシュを使ったシステムでは このシステムコールではデータの一貫性を確保できないことになる。
+.SS 詳細
+\fBSYNC_FILE_RANGE_WAIT_BEFORE\fP と \fBSYNC_FILE_RANGE_WAIT_AFTER\fP は I/O エラーや
+\fBENOSPC\fP 状態を検出し、呼び出し元にこれらの情報を返す。
+
+\fIflags\fP の役に立つビットの組み合わせを以下に示す:
+.TP 
+\fBSYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE\fP
+指定された範囲内のページで、 \fBsync_file_range\fP()  が呼び出された際に dirty であった全てのページが、
+確実に書き出し対象となるようにする。 これは、start\-write\-for\-data\-integrity 操作
+(データ完全性確保のための書き込み開始の操作) である。
+.TP 
+\fBSYNC_FILE_RANGE_WRITE\fP
+指定された範囲内のページで、現在書き出し中でない全ての dirty ページの 書き出しを開始する。これは非同期のディスクへのフラッシュ
+(flush\-to\-disk)  操作である。データ完全性確保が必要な操作としては適切ではない。
+.TP 
+\fBSYNC_FILE_RANGE_WAIT_BEFORE\fP (or \fBSYNC_FILE_RANGE_WAIT_AFTER\fP)
+指定された範囲内の全てのページの書き出しの完了を待つ。 このフラグは、前に行われた操作 \fBSYNC_FILE_RANGE_WAIT_BEFORE |
+SYNC_FILE_RANGE_WRITE\fP の後に使用でき、この操作の完了を待ち、結果を取得することができる。
+.TP 
+\fBSYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE | SYNC_FILE_RANGE_WAIT_AFTER\fP
+これは write\-for\-data\-integrity 操作 (データ完全性確保のための書き込み) であり、指定された範囲内の、
+\fBsync_file_range\fP()  が呼ばれた時点で dirty な全てのページが ディスクに格納されることが保証される。
+.SH 返り値
+成功の場合、 \fBsync_file_range\fP()  は 0 を返す。失敗の場合、\-1 を返し、 \fIerror\fP にエラーを示す値を設定する。
+.SH エラー
+.TP 
+\fBEBADF\fP
+\fIfd\fP が有効なファイルディスクリプタではない。
+.TP 
+\fBEINVAL\fP
+\fIflags\fP に不正なビットが指定されている。または \fIoffset\fP か \fInbytes\fP が不正である。
+.TP 
+\fBEIO\fP
+I/O エラー。
+.TP 
+\fBENOMEM\fP
+メモリ不足である。
+.TP 
+\fBENOSPC\fP
+ディスク領域不足である。
+.TP 
+\fBESPIPE\fP
+.\" FIXME . (bug?) Actually, how can 'fd' refer to a symbolic link (S_ISLNK)?
+.\" (In userspace at least) it isn't possible to obtain a file descriptor
+.\" for a symbolic link.
+\fIfd\fP が、通常のファイル、ブロックデバイス、ディレクトリ、シンボリックリンク 以外のものを指している。
+.SH バージョン
+\fBsync_file_range\fP()  はカーネル 2.6.17 で Linux に登場した。
+.SH 準拠
+このシステムコールは Linux 独自であり、 移植性が必要なプログラムでは使用を避けるべきである。
+.SH 注意
+.\" See kernel commit edd5cd4a9424f22b0fa08bef5e299d41befd5622
+いくつかのアーキテクチャ (例えば、 PowerPC や ARM) では、 64 ビットの
+引き数は適切なレジスタの組に割り当てる必要がある。このようなアーキテク
+チャでは、 \fBsync_file_range\fP() の呼び出し方には欠陥があり、それはこの
+システムコールでは引き数 \fIfd\fP と \fIoffset\fP の間のパディング (詰めもの)
+でレジスタが一つ消費されてしまうというものである。そのため、これらの
+アーキテクチャでは引き数が適切な順序になった別のシステムコールが定義
+されている。
+.PP
+.in +4n
+.nf
+\fBint sync_file_range2(int \fP\fIfd\fP\fB, unsigned int \fP\fIflags\fP\fB,\fP
+\fB                     off64_t \fP\fIoffset\fP\fB, off64_t \fP\fInbytes\fP\fB);\fP
+.fi
+.in
+.PP
+上記の点以外は、このシステムコールの動作は \fBsync_file_range\fP() と
+全く同じである。このシステムコールに対するライブラリによるサポートは
+glibc では提供されていない。
+
+このバージョンのシステムコールは、Linux 2.6.20 で ARM アーキテクチャで
+初めて登場し、 \fBarm_sync_file_range\fP() という名前であった。
+Linux 2.6.22 で、同様のシステムコールが PowerPC 用に追加された際に、
+システムコールの名前が変更された。
+glibc によるサポートが提供されているアーキテクチャでは、
+glibc のラッパー関数は \fBsync_file_range\fP() という名前で
+\fBsync_file_range2\fP() を適切に使用するようになっている。
+.SH 関連項目
+\fBfdatasync\fP(2), \fBfsync\fP(2), \fBmsync\fP(2), \fBsync\fP(2)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。