#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);
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) に取って代わる。