Эта не та функция, которая должна представлять для вас интерес.
Смотрите функцию
readdir(3),
которая является интерфейсом библиотеки языка C, соответствующим стандарту
POSIX.
Системный вызов
getdents
читает несколько структур
dirent
из каталога, на который указывает
fd
в область памяти, на которую указывает
dirp.
Параметр
count
является размером этой области памяти.
Структура
dirent
определена следующим образом:
struct dirent
{
long d_ino; /* номер inode */
off_t d_off; /* смещение до следущей dirent */
unsigned short d_reclen; /* длина данной dirent */
char d_name [NAME_MAX+1]; /* имя файла (завершаемое нулём) */
}
d_ino
является номером индексного дескриптора (inode).
d_off
является дистанцией от начала данного каталога до начала следующей
структуры
dirent.
d_reclen
является размером данной структуры
dirent.
d_name
является именем файла, которое завершается нулевым символом.
В случае успеха возвращается количество прочитанных байт. При
достижении конца каталога возвращается 0. В случае ошибки
возвращается -1 и значение
errno
устанавливается соответствующим образом.
ОШИБКИ
EBADF
Неправильный файловый дескриптор
fd.
EFAULT
Аргумент указывает за пределы адресного пространства, вызывающего процесса.