table of contents
READDIR(2) | Руководство программиста Linux | READDIR(2) |
ИМЯ¶
readdir - читает элемент каталога
ОБЗОР¶
int readdir(unsigned int fd, struct old_linux_dirent *dirp, unsigned int count);
ОПИСАНИЕ¶
Эта не та функция, которая должна представлять для вас интерес. Смотрите описание функции readdir(3), которая является интерфейсом библиотеки языка C, соответствующим стандарту POSIX. В этой странице описан минимальный интерфейс системного вызова ядра, который заменён на getdents(2).
Вызов readdir() читает структуру old_linux_dirent из каталога, заданного файловым дескриптором fd, в буфер, указываемый в dirp. Аргумент count игнорируется; всегда считывается только одна структура old_linux_dirent.
Структура old_linux_dirent определена следующим образом:
struct old_linux_dirent {
long d_ino; /* номер inode */
off_t d_off; /* смещение на данную old_linux_dirent */
unsigned short d_reclen; /* длина данной d_name */
char d_name[NAME_MAX+1]; /* имя файла (завершается null) */ }
Значением d_ino является номер inode. В d_off задаётся смещение данной old_linux_dirent от начала каталога. В d_reclen задаётся размер d_name без учета завершающего байта null. В d_name указывается имя файла, завершающееся null.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
При успешном выполнении возвращается 1. Если каталог закончился возвращается 0. При ошибке возвращается -1, а переменной errno присваивается номер ошибки.
ОШИБКИ¶
СООТВЕТСТВИЕ СТАНДАРТАМ¶
Данный вызов есть только в Linux.
ЗАМЕЧАНИЯ¶
В glibc нет обёртки для данного системного вызова; запускайте его с помощью syscall(2). Структуру old_linux_dirent нужно определить самостоятельно.
СМОТРИТЕ ТАКЖЕ¶
2008-10-02 | Linux |