OSDN Git Service

(split) Convert release and draft pages to UTF-8.
[linuxjm/LDP_man-pages.git] / release / man2 / posix_fadvise.2
index 68d92fb..e323d4c 100644 (file)
@@ -31,9 +31,9 @@
 .\" Updated & Modified Thu Jan  4 23:55:18 JST 2007 by Yuichi SATO, LDP v2.43
 .\"
 .TH POSIX_FADVISE 2 2003-02-14 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-posix_fadvise \- ¥Õ¥¡¥¤¥ë¥Ç¡¼¥¿¤Î¥¢¥¯¥»¥¹¥Ñ¥¿¡¼¥ó¤ò¤¢¤é¤«¤¸¤áÀë¸À¤¹¤ë
-.SH ½ñ¼°
+.SH 名前
+posix_fadvise \- ファイルデータのアクセスパターンをあらかじめ宣言する
+.SH 書式
 .nf
 .B #define _XOPEN_SOURCE 600
 .B #include <fcntl.h>
@@ -41,115 +41,115 @@ posix_fadvise \- 
 .BI "int posix_fadvise(int " fd ", off_t " offset ", off_t " len \
 ", int " advice ");"
 .fi
-.SH ÀâÌÀ
-¥×¥í¥°¥é¥à¤Ï¡¢¾­ÍèÆÃÄê¤Î¥Ñ¥¿¡¼¥ó¤Ç¥Õ¥¡¥¤¥ë¥Ç¡¼¥¿¤Ë
-¥¢¥¯¥»¥¹¤¹¤ë°Õ»×¤òÅÁ¤¨¤ë¤¿¤á¤Ë
+.SH 説明
+プログラムは、将来特定のパターンでファイルデータに
+アクセスする意思を伝えるために
 .BR posix_fadvise ()
-¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
-¤³¤ì¤Ë¤è¤ê¡¢¥«¡¼¥Í¥ë¤¬Å¬ÀڤʺÇŬ²½¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£
+を使うことができる。
+これにより、カーネルが適切な最適化を実行することが可能になる。
 
-\fIadvice\fP ¤Ï  \fIfd\fP ¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î
-\fIoffset\fP ¤«¤é»Ï¤Þ¤ë \fIlen\fP ¥Ð¥¤¥È¤ÎÈÏ°ÏÆâ
-(\fIlen\fP ¤¬ 0 ¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤Þ¤Ç) ¤Î
-(ɬ¤º¤·¤â¸ºß¤·¤Ê¤¤) Îΰè¤ËŬÍѤµ¤ì¤ë¡£
-¥¢¥É¥Ð¥¤¥¹¤ÏµÁ̳¤Å¤±¤Ç¤Ï¤Ê¤¤¡£
-¥¢¥É¥Ð¥¤¥¹¤Ïñ¤Ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¤¿¤á¤Ë²ÄǽÀ­¤ò¹½À®¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£
+\fIadvice\fP は  \fIfd\fP が参照しているファイルの
+\fIoffset\fP から始まる \fIlen\fP バイトの範囲内
+(\fIlen\fP が 0 の場合はファイルの終りまで) の
+(必ずしも存在しない) 領域に適用される。
+アドバイスは義務づけではない。
+アドバイスは単にアプリケーションのために可能性を構成するだけである。
 
-\fIadvice\fP ¤Ëµö¤µ¤ì¤ëÃͤˤϡ¢°Ê²¼¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤ë:
+\fIadvice\fP に許される値には、以下のものが含まれる:
 .TP
 .B POSIX_FADV_NORMAL
-»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Î¥¢¥¯¥»¥¹¥Ñ¥¿¡¼¥ó¤ò»Ø¼¨¤¹¤ë¥¢¥É¥Ð¥¤¥¹¤ò
-¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬²¿¤â»ý¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£
-¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¥¢¥É¥Ð¥¤¥¹¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢
-¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç²¾Äꤵ¤ì¤ë¡£
+指定されたデータのアクセスパターンを指示するアドバイスを
+アプリケーションが何も持っていないことを示す。
+オープンされたファイルにアドバイスが指定されない場合、
+これがデフォルトで仮定される。
 .TP
 .B POSIX_FADV_SEQUENTIAL
-¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤¬¥·¡¼¥±¥ó¥·¥ã¥ë¤Ë
-(Â礭¤Ê¥ª¥Õ¥»¥Ã¥È¤ÎÁ°¤Ë¾®¤µ¤Ê¥ª¥Õ¥»¥Ã¥È¤Î¥Ç¡¼¥¿¤òÆɤà¤è¤¦¤Ë)
-¥¢¥¯¥»¥¹¤µ¤ì¤ë¤³¤È¤ò´üÂÔ¤¹¤ë¡£
+アプリケーションは指定されたデータがシーケンシャルに
+(大きなオフセットの前に小さなオフセットのデータを読むように)
+アクセスされることを期待する。
 .TP
 .B POSIX_FADV_RANDOM
-»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤¬¥é¥ó¥À¥à¤Ê½çÈ֤ǥ¢¥¯¥»¥¹¤µ¤ì¤ë¡£
+指定されたデータがランダムな順番でアクセスされる。
 .TP
 .B POSIX_FADV_NOREUSE
-»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Ï 1 ÅÙ¤·¤«¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¡£
+指定されたデータは 1 度しかアクセスされない。
 .TP
 .B POSIX_FADV_WILLNEED
-»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Ï¶á¤¤¾­Í襢¥¯¥»¥¹¤µ¤ì¤ë¡£
+指定されたデータは近い将来アクセスされる。
 .TP
 .B POSIX_FADV_DONTNEED
-»ØÄꤵ¤ì¤¿¥Ç¡¼¥¿¤Ï¶á¤¤¾­Í襢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£
-¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¥¨¥é¡¼Èֹ椬ÊÖ¤µ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
+指定されたデータは近い将来アクセスされない。
+.SH 返り値
+成功した場合は 0 が返される。
+失敗した場合はエラー番号が返される。
+.SH ã\82¨ã\83©ã\83¼
 .TP
 .B EBADF
-\fIfd\fP °ú¤­¿ô¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£
+\fIfd\fP 引き数が有効なファイルディスクリプタでない。
 .TP
 .B EINVAL
-̵¸ú¤ÊÃͤ¬ \fIadvice\fP ¤Ë»ØÄꤵ¤ì¤¿¡£
+無効な値が \fIadvice\fP に指定された。
 .TP
 .B ESPIPE
-»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥Ñ¥¤¥×¤Þ¤¿¤Ï FIFO ¤ò»²¾È¤·¤Æ¤¤¤ë
-(¤³¤Î¾ì¹ç¡¢Linux ¤Ï¼ÂºÝ¤Ë¤Ï
+指定されたファイルディスクリプタがパイプまたは FIFO を参照している
+(この場合、Linux は実際には
 .B EINVAL
-¤òÊÖ¤¹)¡£
-.SH ¥Ð¡¼¥¸¥ç¥ó
+を返す)。
+.SH バージョン
 .BR posix_fadvise ()
-¤Ï¥«¡¼¥Í¥ë 2.5.60 ¤ÇÅо줷¤¿¡£
-.\" ¼ÂºÝ¤Ë¤Ï fadvise64() ¤È¤·¤ÆÅо줷¤¿¡£-- MTK
-glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.2 °Ê¹ß¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¡£
-.SH ½àµò
+はカーネル 2.5.60 で登場した。
+.\" 実際には fadvise64() として登場した。-- MTK
+glibc でのサポートは glibc バージョン 2.2 以降で行われている。
+.SH 準拠
 POSIX.1-2001.
 .I len
-°ú¤­¿ô¤Î·¿¤¬ POSIX.1-2003 TC1 ¤Ë¤ª¤¤¤Æ
+引き数の型が POSIX.1-2003 TC1 において
 .I size_t
-¤«¤é
+から
 .I off_t
-¤ËÊѹ¹¤µ¤ì¤¿ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£
-.SH Ãí°Õ
-Linux ¤Ç¤Ï¡¢\fBPOSIX_FADV_NORMAL\fP ¤Ï¥Ð¥Ã¥­¥ó¥°¥Ç¥Ð¥¤¥¹¤Î
-¥Ç¥Õ¥©¥ë¥È¥µ¥¤¥º¤ËÀèÆɤߠ(readahead) ¥¦¥¤¥ó¥É¥¦¤òÀßÄꤹ¤ë¡£
-\fBPOSIX_FADV_SEQUENTIAL\fP ¤Ï¤³¤Î¥µ¥¤¥º¤ò 2 Çܤ·¡¢
-\fBPOSIX_FADV_RANDOM\fP ¤ÏÀèÆɤߤòÁ´¤¯Ìµ¸ú¤Ë¤¹¤ë¡£
-¤³¤ì¤é¤ÎÊѹ¹¤Ï¥Õ¥¡¥¤¥ëÁ´ÂΤ˱ƶÁ¤·¡¢»ØÄꤵ¤ì¤¿Îΰè¤Î¤ß¤Ë±Æ¶Á¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤
-(¤·¤«¤·Æ±¤¸¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¾¤Î¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤)¡£
+に変更された点に注意すること。
+.SH 注意
+Linux では、\fBPOSIX_FADV_NORMAL\fP はバッキングデバイスの
+デフォルトサイズに先読み (readahead) ウインドウを設定する。
+\fBPOSIX_FADV_SEQUENTIAL\fP はこのサイズを 2 倍し、
+\fBPOSIX_FADV_RANDOM\fP は先読みを全く無効にする。
+これらの変更はファイル全体に影響し、指定された領域のみに影響するわけではない
+(しかし同じファイルに対する他のオープンファイルハンドルは影響を受けない)。
 
-\fBPOSIX_FADV_WILLNEED\fP ¤Ï¡¢
-¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤Ë»ØÄêÎΰè¤Î¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¤Æɤ߹þ¤ß¤ò³«»Ï¤¹¤ë¡£
-Æɤ߹þ¤Þ¤ì¤ë¥Ç¡¼¥¿¤ÎÁíÎ̤ϡ¢
-²¾ÁÛ¥á¥â¥ê¤ÎÉé²Ù¤Ë°Í¤Ã¤Æ¥«¡¼¥Í¥ë¤¬¸º¤é¤¹¤«¤â¤·¤ì¤Ê¤¤
-(¿ô¥á¥¬¥Ð¥¤¥È¤Ç¤¢¤ì¤ÐÄ̾ï¤ÏÁ´¤¯½½Ê¬¤Ç¤¢¤ê¡¢
-¤½¤ì¤è¤ê¿¤¯¤Æ¤â¤á¤Ã¤¿¤ËÌò¤ËΩ¤¿¤Ê¤¤)¡£
+\fBPOSIX_FADV_WILLNEED\fP は、
+ページキャッシュに指定領域のブロックされない読み込みを開始する。
+読み込まれるデータの総量は、
+仮想メモリの負荷に依ってカーネルが減らすかもしれない
+(数メガバイトであれば通常は全く十分であり、
+それより多くてもめったに役に立たない)。
 
-2.6.18 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢\fBPOSIX_FADV_NOREUSE\fP ¤Ï
-\fBPOSIX_FADV_WILLNEED\fP ¤ÈƱ¤¸°ÕÌ£¤Ç¤¢¤Ã¤¿¡£
-¤³¤ì¤Ï¿ʬ¥Ð¥°¤Ç¤¢¤Ã¤¿¡£
-¥«¡¼¥Í¥ë 2.6.18 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï²¿¤â¹Ô¤ï¤Ê¤¤¡£
+2.6.18 より前のカーネルでは、\fBPOSIX_FADV_NOREUSE\fP は
+\fBPOSIX_FADV_WILLNEED\fP と同じ意味であった。
+これは多分バグであった。
+カーネル 2.6.18 以降では、このフラグは何も行わない。
 
-\fBPOSIX_FADV_DONTNEED\fP ¤Ï»ØÄꤵ¤ì¤¿Îΰè¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿
-¥­¥ã¥Ã¥·¥å¥Ú¡¼¥¸¤ò²òÊü¤·¤è¤¦¤È¤¹¤ë¡£
-Î㤨¤Ð¡¢¤³¤ì¤ÏÂ礭¤Ê¥Õ¥¡¥¤¥ë¤ò¥¹¥È¥ê¡¼¥ß¥ó¥°¤¹¤ë¤È¤­¤ËÌòΩ¤Ä¡£
-¥×¥í¥°¥é¥à¤Ï¡¢»ÈÍѺѤߤΥ­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ç¡¼¥¿¤ò²òÊü¤¹¤ë¤è¤¦¤Ë¡¢
-Äê´üŪ¤Ë¥«¡¼¥Í¥ë¤ËÍ׵᤹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
-¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¤µ¤é¤ËÍ­¸ú¤Ê¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ú¡¼¥¸¤¬¡¢
-Âå¤ï¤ê¤ËÇË´þ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£
+\fBPOSIX_FADV_DONTNEED\fP は指定された領域に関連付けられた
+キャッシュページを解放しようとする。
+例えば、これは大きなファイルをストリーミングするときに役立つ。
+プログラムは、使用済みのキャッシュされたデータを解放するように、
+定期的にカーネルに要求するかもしれない。
+そうすることにより、さらに有効なキャッシュされたページが、
+代わりに破棄されることはない。
 
-¤Þ¤À½ñ¤­½Ð¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ú¡¼¥¸¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¤Î¤Ç¡¢
-¤½¤Î¥Ú¡¼¥¸¤Î²òÊü¤¬Êݾڤµ¤ì¤ë¤³¤È¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Ë¾¤ó¤Ç¤¤¤ë¤Ê¤é¡¢
-ºÇ½é¤Ë
+まだ書き出されていないページは影響を受けないので、
+そのページの解放が保証されることをアプリケーションが望んでいるなら、
+最初に
 .BR fsync (2)
-¤Þ¤¿¤Ï
+または
 .BR fdatasync (2)
-¤ò¸Æ¤Ö¤Ù¤­¤Ç¤¢¤ë¡£
-.SH ¥Ð¥°
-2.6.6 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢
+を呼ぶべきである。
+.SH ã\83\90ã\82°
+2.6.6 より前のカーネルでは、
 .I len
-¤Ë 0 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢
-¡Ö¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤Þ¤Ç¤ÎÁ´¤Æ¤Î¥Ð¥¤¥È¡×¤È¤¤¤¦°ÕÌ£¤Ç¤Ï¤Ê¤¯¡¢
-ʸ»úÄ̤ê¡Ö0 ¥Ð¥¤¥È¡×¤È¤·¤Æ²ò¼á¤µ¤ì¤Æ¤¤¤¿¡£
-.SH ´ØÏ¢¹àÌÜ
+に 0 が指定された場合、
+「ファイルの終りまでの全てのバイト」という意味ではなく、
+文字通り「0 バイト」として解釈されていた。
+.SH 関連項目
 .BR readahead (2),
 .BR posix_fallocate (3),
 .BR posix_madvise (3)