OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man2 / getdents.2
index ab3f360..38feb7c 100644 (file)
 .\" Modified 22 July 1995 by Michael Chastain <mec@duracef.shout.net>:
 .\"   Derived from 'readdir.2'.
 .\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond <esr@thyrsus.com>
+.\"*******************************************************************
 .\"
-.\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
-.\"         all rights reserved.
-.\" Translated Sat Feb 22 20:15:56 JST 1997
-.\"         by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Updated Sun Oct 12 JST 2003 by Kentaro Shirakata <argrath@ub32.org>
-.\" Updated Wed Jul 30 JST 2008 by Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2009-02-12 by Kentaro Shirakata <argrath@ub32.org>
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.\"WORD:       directory               ディレクトリ
-.\"WORD:       entry                   エントリ
-.\"WORD:       memory area             メモリ領域
-.\"WORD:       parameter               パラメーター
-.\"WORD:       inode number            inode 番号
-.\"WORD:       null                    ヌル文字
-.\"
-.TH GETDENTS 2  2009-07-04 "Linux" "Linux Programmer's Manual"
+.\"*******************************************************************
+.TH GETDENTS 2 2010\-11\-21 Linux "Linux Programmer's Manual"
 .SH 名前
 getdents \- ディレクトリ・エントリを取得する
 .SH 書式
 .nf
-.BI "int getdents(unsigned int " fd ", struct linux_dirent *" dirp ,
-.BI "             unsigned int " count );
+\fBint getdents(unsigned int \fP\fIfd\fP\fB, struct linux_dirent *\fP\fIdirp\fP\fB,\fP
+\fB             unsigned int \fP\fIcount\fP\fB);\fP
 .fi
 .SH 説明
-これはあなたの関心を引くような関数ではない。
-POSIX 準拠の C ライブラリインターフェースについては
-.BR readdir (3)
-を見ること。
-このページは、カーネルシステムコールの生のインターフェースについて
-記載したものである。
+これはあなたの関心を引くような関数ではない。 POSIX 準拠の C ライブラリインターフェースについては \fBreaddir\fP(3)  を見ること。
+このページは、カーネルシステムコールの生のインターフェースについて 記載したものである。
 .PP
-.BR getdents ()
-システムコールは、オープン済みのファイル記述子
-.I fd
-で参照されるディレクトリから
-.I linux_dirent
-構造体をいくつか読み出し、
-.I dirp
-が指しているバッファに格納する。
-.I count
+\fBgetdents\fP()  システムコールは、オープン済みのファイルディスクリプタ \fIfd\fP で参照されるディレクトリから
+\fIlinux_dirent\fP 構造体をいくつか読み出し、 \fIdirp\fP が指しているバッファに格納する。 \fIcount\fP
 引き数はそのバッファのサイズを示す。
 .PP
-.I linux_dirent
-構造体は以下のように宣言されている:
+\fIlinux_dirent\fP 構造体は以下のように宣言されている:
 .PP
 .in +4n
 .nf
@@ -76,7 +53,7 @@ struct linux_dirent {
     unsigned long  d_ino;     /* Inode number */
     unsigned long  d_off;     /* Offset to next \fIlinux_dirent\fP */
     unsigned short d_reclen;  /* Length of this \fIlinux_dirent\fP */
-    char           d_name[];  /* Filename (null-terminated) */
+    char           d_name[];  /* Filename (null\-terminated) */
                         /* length is actually (d_reclen \- 2 \-
                            offsetof(struct linux_dirent, d_name) */
     /*
@@ -89,119 +66,90 @@ struct linux_dirent {
 .fi
 .in
 .PP
-.I d_ino
-は inode 番号である。
-.I d_off
-はディレクトリの先頭から次の
-.I linux_dirent
-の先頭までの距離である。
-.I d_reclen
-はこの
-.I linux_dirent
-全体のサイズである。
-.I d_name
+\fId_ino\fP は inode 番号である。 \fId_off\fP はディレクトリの先頭から次の \fIlinux_dirent\fP の先頭までの距離である。
+\fId_reclen\fP はこの \fIlinux_dirent\fP 全体のサイズである。 \fId_name\fP
 はヌル(null)文字で終わるファイル名である。
 
-.I d_type
-は、構造体の最後のバイトであり、ファイルタイプを示す。
-.I d_type
-は以下の値の一つを取る
-.RI ( <dirent.h>
-で定義されている)。
-.TP 12
-.B DT_BLK
+\fId_type\fP は、構造体の最後のバイトであり、ファイルタイプを示す。 \fId_type\fP は以下の値の一つを取る
+(\fI<dirent.h>\fP で定義されている)。
+.TP  12
+\fBDT_BLK\fP
 ブロックデバイスである。
-.TP
-.B DT_CHR
+.TP 
+\fBDT_CHR\fP
 キャラクタデバイスである。
-.TP
-.B DT_DIR
+.TP 
+\fBDT_DIR\fP
 ディレクトリである。
-.TP
-.B DT_FIFO
-名前きパイプ (FIFO) である。
-.TP
-.B DT_LNK
+.TP 
+\fBDT_FIFO\fP
+名前きパイプ (FIFO) である。
+.TP 
+\fBDT_LNK\fP
 シンボリックリンクである。
-.TP
-.B DT_REG
+.TP 
+\fBDT_REG\fP
 通常のファイルである。
-.TP
-.B DT_SOCK
+.TP 
+\fBDT_SOCK\fP
 UNIX ドメインソケットである。
-.TP
-.B DT_UNKNOWN
\83\95ã\82¡ã\82¤ã\83«ã\82¿ã\82¤ã\83\97ã\81¯不明である。
+.TP 
+\fBDT_UNKNOWN\fP
\83\95ã\82¡ã\82¤ã\83«ã\82¿ã\82¤ã\83\97ã\81\8c不明である。
 .PP
-.I d_type
-フィールドは Linux 2.6.4 から実装されている。
-これは
-.I linux_dirent
-構造体のうち、以前はゼロで埋められていた空間に配置されている。
-従って、2.6.3 以前のカーネルでは、このフィールドにアクセスしようとすると
-常に値 0
-.RB ( DT_UNKNOWN )
-が返される。
+\fId_type\fP フィールドは Linux 2.6.4 から実装されている。 これは \fIlinux_dirent\fP
+構造体のうち、以前はゼロで埋められていた空間に配置されている。 従って、2.6.3 以前のカーネルでは、このフィールドにアクセスしようとすると 常に値
+0 (\fBDT_UNKNOWN\fP)  が返される。
 .PP
-現在のところ、
-.\" カーネル 2.6.27
-.\" 同じ説明文が readdir.2 にもある。
-.I d_type
-でファイルタイプを返す機能が完全にサポートされているのは、
-いくつかのファイルシステムにおいてのみである
-(Btrfs, ext2, ext3, ext4 はサポートしている)。
-どのアプリケーションも、
-.B DT_UNKNOWN
+.\" kernel 2.6.27
+.\" The same sentence is in readdir.2
+現在のところ、 \fId_type\fP でファイルタイプを返す機能が完全にサポートされているのは、 いくつかのファイルシステムにおいてのみである
+(Btrfs, ext2, ext3, ext4 はサポートしている)。 どのアプリケーションも、 \fBDT_UNKNOWN\fP
 が返された際に適切に処理できなければならない。
 .SH 返り値
-成功した場合は、読み込んだバイト数が返される。
-ディレクトリの終わりならば 0 が返される。
-エラーの場合は \-1 を返され、
-.I errno
+成功した場合は、読み込んだバイト数が返される。 ディレクトリの終わりならば 0 が返される。 エラーの場合は \-1 を返され、 \fIerrno\fP
 に適切な値が設定される。
 .SH エラー
-.TP
-.B EBADF
-ファイル記述子
-.I fd
-は無効である。
-.TP
-.B EFAULT
-引き数が、呼び出したプロセスのアドレス空間外を指している。
-.TP
-.B EINVAL
+.TP 
+\fBEBADF\fP
+ファイルディスクリプタ \fIfd\fP が不正である。
+.TP 
+\fBEFAULT\fP
+引き数が呼び出したプロセスのアドレス空間外を指している。
+.TP 
+\fBEINVAL\fP
 結果用のバッファーが小さすぎる。
-.TP
-.B ENOENT
+.TP 
+\fBENOENT\fP
 そのようなディレクトリは存在しない。
-.TP
-.B ENOTDIR
-ファイル記述子がディレクトリを参照していない。
+.TP 
+\fBENOTDIR\fP
+ファイルディスクリプタがディレクトリを参照していない。
 .SH 準拠
+.\" SVr4 documents additional ENOLINK, EIO error conditions.
 SVr4.
-.\" SVr4 では、他に ENOLINK, EIO エラー状態についても記述されている。
 .SH 注意
-glibc はこのシステムコールに対するラッパー関数を提供していないので、
-.BR syscall (2)
-を使って呼び出すこと。
-.I linux_dirent
-構造体は自分で定義する必要がある。
+glibc はこのシステムコールに対するラッパー関数を提供していないので、 \fBsyscall\fP(2)  を使って呼び出すこと。
+\fIlinux_dirent\fP 構造体は自分で定義する必要がある。
+
+このシステムコールは \fBreaddir\fP(2)  を置き換えるものである。
 
-このシステムコールは
-.BR readdir (2)
-を置き換えるものである。
+元々の Linux の \fBgetdents\fP() システムコールは、大きなファイルシステムと
+大きなファイルオフセットを扱うことができなかった。
+その結果、Linux 2.4 で \fBgetdents64\fP() が追加された。
+\fBgetdents64\fP() では、\fIlinux_dirent\fP 構造体のフィールド \fId_ino\fP と
+\fId_off\fP でビット幅の大きなデータ型が使われている。
 .SH 例
-下記のプログラムは
-.BR getdents ()
-の使用例を示したものである。
-以下は、このプログラムを ext2 ディレクトリで実行した際に得られる
+.\" FIXME: This program uses the older getdents(0 system call
+.\" and the structure with smaller field widths.
+下記のプログラムは \fBgetdents\fP()  の使用例を示したものである。 以下は、このプログラムを ext2 ディレクトリで実行した際に得られる
 出力の例である。
 
 .in +4n
 .nf
-.RB "$" " ./a.out /testfs/"
---------------- nread=120 ---------------
-i-node#  file type  d_reclen  d_off   d_name
+$\fB ./a.out /testfs/\fP
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- nread=120 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+i\-node#  file type  d_reclen  d_off   d_name
        2  directory    16         12  .
        2  directory    16         24  ..
       11  directory    24         44  lost+found
@@ -223,7 +171,7 @@ i-node#  file type  d_reclen  d_off   d_name
 #include <sys/stat.h>
 #include <sys/syscall.h>
 
-#define handle_error(msg) \\
+#define handle_error(msg) \e
         do { perror(msg); exit(EXIT_FAILURE); } while (0)
 
 struct linux_dirent {
@@ -256,12 +204,12 @@ main(int argc, char *argv[])
         if (nread == 0)
             break;
 
-        printf("\--------------- nread=%d ---------------\\n", nread);
-        printf("i\-node#  file type  d_reclen  d_off   d_name\\n");
+        printf("\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- nread=%d \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\en", nread);
+        printf("i\-node#  file type  d_reclen  d_off   d_name\en");
         for (bpos = 0; bpos < nread;) {
             d = (struct linux_dirent *) (buf + bpos);
             printf("%8ld  ", d\->d_ino);
-            d_type = *(buf + bpos + d\->d_reclen - 1);
+            d_type = *(buf + bpos + d\->d_reclen \- 1);
             printf("%\-10s ", (d_type == DT_REG) ?  "regular" :
                              (d_type == DT_DIR) ?  "directory" :
                              (d_type == DT_FIFO) ? "FIFO" :
@@ -269,8 +217,8 @@ main(int argc, char *argv[])
                              (d_type == DT_LNK) ?  "symlink" :
                              (d_type == DT_BLK) ?  "block dev" :
                              (d_type == DT_CHR) ?  "char dev" : "???");
-            printf("%4d %10lld  %s\\n", d\->d_reclen,
-                    (long long) d\->d_off, (char *) d->d_name);
+            printf("%4d %10lld  %s\en", d\->d_reclen,
+                    (long long) d\->d_off, (char *) d\->d_name);
             bpos += d\->d_reclen;
         }
     }
@@ -279,5 +227,4 @@ main(int argc, char *argv[])
 }
 .fi
 .SH 関連項目
-.BR readdir (2),
-.BR readdir (3)
+\fBreaddir\fP(2), \fBreaddir\fP(3)