OSDN Git Service

(split) Convert release and draft pages to UTF-8.
[linuxjm/LDP_man-pages.git] / release / man2 / getdents.2
index a148398..ab3f360 100644 (file)
 .\" Updated Wed Jul 30 JST 2008 by Kentaro Shirakata <argrath@ub32.org>
 .\" Updated 2009-02-12 by Kentaro Shirakata <argrath@ub32.org>
 .\"
-.\"WORD:       directory               ¥Ç¥£¥ì¥¯¥È¥ê
-.\"WORD:       entry                   ¥¨¥ó¥È¥ê
-.\"WORD:       memory area             ¥á¥â¥êÎΰè
-.\"WORD:       parameter               ¥Ñ¥é¥á¡¼¥¿¡¼
-.\"WORD:       inode number            inode ÈÖ¹æ
-.\"WORD:       null                    ¥Ì¥ëʸ»ú
+.\"WORD:       directory               ディレクトリ
+.\"WORD:       entry                   エントリ
+.\"WORD:       memory area             メモリ領域
+.\"WORD:       parameter               ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼
+.\"WORD:       inode number            inode 番号
+.\"WORD:       null                    ヌル文字
 .\"
 .TH GETDENTS 2  2009-07-04 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-getdents \- ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë
-.SH ½ñ¼°
+.SH 名前
+getdents \- ディレクトリ・エントリを取得する
+.SH 書式
 .nf
 .BI "int getdents(unsigned int " fd ", struct linux_dirent *" dirp ,
 .BI "             unsigned int " count );
 .fi
-.SH ÀâÌÀ
-¤³¤ì¤Ï¤¢¤Ê¤¿¤Î´Ø¿´¤ò°ú¤¯¤è¤¦¤Ê´Ø¿ô¤Ç¤Ï¤Ê¤¤¡£
-POSIX ½àµò¤Î C ¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï
+.SH 説明
+これはあなたの関心を引くような関数ではない。
+POSIX 準拠の C ライブラリインターフェースについては
 .BR readdir (3)
-¤ò¸«¤ë¤³¤È¡£
-¤³¤Î¥Ú¡¼¥¸¤Ï¡¢¥«¡¼¥Í¥ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÀ¸¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ
-µ­ºÜ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£
+を見ること。
+このページは、カーネルシステムコールの生のインターフェースについて
+記載したものである。
 .PP
 .BR getdents ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ëµ­½Ò»Ò
+システムコールは、オープン済みのファイル記述子
 .I fd
-¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é
+で参照されるディレクトリから
 .I linux_dirent
-¹½Â¤ÂΤò¤¤¤¯¤Ä¤«Æɤ߽Ф·¡¢
+構造体をいくつか読み出し、
 .I dirp
-¤¬»Ø¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£
+が指しているバッファに格納する。
 .I count
-°ú¤­¿ô¤Ï¤½¤Î¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤ò¼¨¤¹¡£
+引き数はそのバッファのサイズを示す。
 .PP
 .I linux_dirent
-¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë:
+構造体は以下のように宣言されている:
 .PP
 .in +4n
 .nf
@@ -90,112 +90,112 @@ struct linux_dirent {
 .in
 .PP
 .I d_ino
-¤Ï inode ÈÖ¹æ¤Ç¤¢¤ë¡£
+は inode 番号である。
 .I d_off
-¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀèƬ¤«¤é¼¡¤Î
+はディレクトリの先頭から次の
 .I linux_dirent
-¤ÎÀèƬ¤Þ¤Ç¤Îµ÷Î¥¤Ç¤¢¤ë¡£
+の先頭までの距離である。
 .I d_reclen
-¤Ï¤³¤Î
+はこの
 .I linux_dirent
-Á´ÂΤΥµ¥¤¥º¤Ç¤¢¤ë¡£
+全体のサイズである。
 .I d_name
-¤Ï¥Ì¥ë(null)ʸ»ú¤Ç½ª¤ï¤ë¥Õ¥¡¥¤¥ë̾¤Ç¤¢¤ë¡£
+はヌル(null)文字で終わるファイル名である。
 
 .I d_type
-¤Ï¡¢¹½Â¤ÂΤκǸå¤Î¥Ð¥¤¥È¤Ç¤¢¤ê¡¢¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤ò¼¨¤¹¡£
+は、構造体の最後のバイトであり、ファイルタイプを示す。
 .I d_type
-¤Ï°Ê²¼¤ÎÃͤΰì¤Ä¤ò¼è¤ë
+は以下の値の一つを取る
 .RI ( <dirent.h>
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£
+で定義されている)。
 .TP 12
 .B DT_BLK
-¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£
+ブロックデバイスである。
 .TP
 .B DT_CHR
-¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¡£
+キャラクタデバイスである。
 .TP
 .B DT_DIR
-¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£
+ディレクトリである。
 .TP
 .B DT_FIFO
-̾Á°¤Ä¤­¥Ñ¥¤¥× (FIFO) ¤Ç¤¢¤ë¡£
+名前つきパイプ (FIFO) である。
 .TP
 .B DT_LNK
-¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¢¤ë¡£
+シンボリックリンクである。
 .TP
 .B DT_REG
-Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£
+通常のファイルである。
 .TP
 .B DT_SOCK
-UNIX ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ç¤¢¤ë¡£
+UNIX ドメインソケットである。
 .TP
 .B DT_UNKNOWN
-¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤ÏÉÔÌÀ¤Ç¤¢¤ë¡£
+ファイルタイプは不明である。
 .PP
 .I d_type
-¥Õ¥£¡¼¥ë¥É¤Ï Linux 2.6.4 ¤«¤é¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£
-¤³¤ì¤Ï
+フィールドは Linux 2.6.4 から実装されている。
+これは
 .I linux_dirent
-¹½Â¤ÂΤΤ¦¤Á¡¢°ÊÁ°¤Ï¥¼¥í¤ÇËä¤á¤é¤ì¤Æ¤¤¤¿¶õ´Ö¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¡£
-½¾¤Ã¤Æ¡¢2.6.3 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤¹¤ë¤È
-¾ï¤ËÃÍ 0
+構造体のうち、以前はゼロで埋められていた空間に配置されている。
+従って、2.6.3 以前のカーネルでは、このフィールドにアクセスしようとすると
+常に値 0
 .RB ( DT_UNKNOWN )
-¤¬ÊÖ¤µ¤ì¤ë¡£
+が返される。
 .PP
-¸½ºß¤Î¤È¤³¤í¡¢
-.\" ¥«¡¼¥Í¥ë 2.6.27
-.\" Æ±¤¸ÀâÌÀʸ¤¬ readdir.2 ¤Ë¤â¤¢¤ë¡£
+現在のところ、
+.\" カーネル 2.6.27
+.\" 同じ説明文が readdir.2 にもある。
 .I d_type
-¤Ç¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤òÊÖ¤¹µ¡Ç½¤¬´°Á´¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢
-¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¤Î¤ß¤Ç¤¢¤ë
-(Btrfs, ext2, ext3, ext4 ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë)¡£
-¤É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤â¡¢
+でファイルタイプを返す機能が完全にサポートされているのは、
+いくつかのファイルシステムにおいてのみである
+(Btrfs, ext2, ext3, ext4 はサポートしている)。
+どのアプリケーションも、
 .B DT_UNKNOWN
-¤¬ÊÖ¤µ¤ì¤¿ºÝ¤ËŬÀڤ˽èÍý¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢Æɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤ë¡£
-¥Ç¥£¥ì¥¯¥È¥ê¤Î½ª¤ï¤ê¤Ê¤é¤Ð 0 ¤¬ÊÖ¤µ¤ì¤ë¡£
-¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤µ¤ì¡¢
+が返された際に適切に処理できなければならない。
+.SH 返り値
+成功した場合は、読み込んだバイト数が返される。
+ディレクトリの終わりならば 0 が返される。
+エラーの場合は \-1 を返され、
 .I errno
-¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
+に適切な値が設定される。
+.SH ã\82¨ã\83©ã\83¼
 .TP
 .B EBADF
-¥Õ¥¡¥¤¥ëµ­½Ò»Ò
+ファイル記述子
 .I fd
-¤Ï̵¸ú¤Ç¤¢¤ë¡£
+は無効である。
 .TP
 .B EFAULT
-°ú¤­¿ô¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö³°¤ò»Ø¤·¤Æ¤¤¤ë¡£
+引き数が、呼び出したプロセスのアドレス空間外を指している。
 .TP
 .B EINVAL
-·ë²ÌÍѤΥХåե¡¡¼¤¬¾®¤µ¤¹¤®¤ë¡£
+結果用のバッファーが小さすぎる。
 .TP
 .B ENOENT
-¤½¤Î¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸ºß¤·¤Ê¤¤¡£
+そのようなディレクトリは存在しない。
 .TP
 .B ENOTDIR
-¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£
-.SH ½àµò
+ファイル記述子がディレクトリを参照していない。
+.SH 準拠
 SVr4.
-.\" SVr4 ¤Ç¤Ï¡¢Â¾¤Ë ENOLINK, EIO ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£
-.SH Ãí°Õ
-glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢
+.\" SVr4 では、他に ENOLINK, EIO エラー状態についても記述されている。
+.SH 注意
+glibc はこのシステムコールに対するラッパー関数を提供していないので、
 .BR syscall (2)
-¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£
+を使って呼び出すこと。
 .I linux_dirent
-¹½Â¤ÂΤϼ«Ê¬¤ÇÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£
+構造体は自分で定義する必要がある。
 
-¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
+このシステムコールは
 .BR readdir (2)
-¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¤¢¤ë¡£
-.SH Îã
-²¼µ­¤Î¥×¥í¥°¥é¥à¤Ï
+を置き換えるものである。
+.SH 
+下記のプログラムは
 .BR getdents ()
-¤Î»ÈÍÑÎã¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£
-°Ê²¼¤Ï¡¢¤³¤Î¥×¥í¥°¥é¥à¤ò ext2 ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¼Â¹Ô¤·¤¿ºÝ¤ËÆÀ¤é¤ì¤ë
-½ÐÎϤÎÎã¤Ç¤¢¤ë¡£
+の使用例を示したものである。
+以下は、このプログラムを ext2 ディレクトリで実行した際に得られる
+出力の例である。
 
 .in +4n
 .nf
@@ -211,7 +211,7 @@ i-node#  file type  d_reclen  d_off   d_name
   130817  directory    16       4096  sub3
 .fi
 .in
-.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹
+.SS ã\83\97ã\83­ã\82°ã\83©ã\83 ã\81®ã\82½ã\83¼ã\82¹
 \&
 .nf
 #define _GNU_SOURCE
@@ -278,6 +278,6 @@ main(int argc, char *argv[])
     exit(EXIT_SUCCESS);
 }
 .fi
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
 .BR readdir (2),
 .BR readdir (3)