GETDENTS
Section: Linux Programmer's Manual (2)
Updated: 2007-06-01
Index
JM Home Page
roff page
名前
getdents - ディレクトリ・エントリを取得する
書式
#include <unistd.h>
#include <linux/types.h>
#include <linux/dirent.h>
#include <linux/unistd.h>
#include <errno.h>
int getdents(unsigned int fd, struct dirent *dirp, unsigned int count);
説明
これはあなたが興味を持つような関数ではない。
POSIX 準拠の C ライブラリインターフェースについては
readdir(3)
を見ること。
このページは裸のカーネルシステムコールインターフェースを記している。
getdents()
は
fd
で指定したディレクトリから
dirp
が指しているメモリ領域にいくつかの
dirent
構造体を読み込む。
count
パラメーターは
メモリ領域のサイズである。
dirent
構造体は以下のように宣言されている:
-
struct dirent {
long d_ino; /* inode number */
off_t d_off; /* offset to next dirent */
unsigned short d_reclen; /* length of this dirent */
char d_name [NAME_MAX+1]; /* filename (null-terminated) */
}
d_ino
は inode 番号である。
d_off
はディレクトリの先頭から次の
dirent
の先頭までの距離である。
d_reclen
はこの
dirent
全体のサイズである。
d_name
はヌル(null)文字で終わるファイル名である。
このコールは
readdir(2)
に取って代わる。
返り値
成功した場合は、読み込んだバイト数が返される。
ディレクトリの終わりならば 0 が返される。
エラーの場合は -1 を返され、
errno
に適切な値が設定される。
エラー
- EBADF
-
ファイルディスクリプタ
fd
は無効である。
- EFAULT
-
引き数のポインターが呼び出したプロセスがアクセス可能な空間の
外部を指している。
- EINVAL
-
結果用のバッファーが小さすぎる。
- ENOENT
-
そのようなディレクトリは存在しない。
- ENOTDIR
-
ファイル・ディスクリプタがディレクトリを参照していない。
準拠
SVr4.
注意
glibc はこのシステムコールに対するラッパー関数を提供していない。
syscall(2)
を使って呼び出すこと。
関連項目
readdir(2),
readdir(3)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:42 GMT, November 19, 2007