Главная » 2017 » Ноябрь » 21 » man 2 readdir
01:29
man 2 readdir

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


readdir - читает элемент каталога



ОБЗОР


int readdir(unsigned int fd, struct old_linux_dirent *dirp,
unsigned int count);

Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите
ЗАМЕЧАНИЯ.



ОПИСАНИЕ


Эта не та функция, которая должна представлять для вас интерес. Смотрите описание
функции 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 ('\0'). В d_name указывается имя файла, завершающееся
null.



ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


При успешном выполнении возвращается 1. Если каталог закончился возвращается 0.
При ошибке возвращается -1, а переменной errno присваивается номер ошибки.



ОШИБКИ


EBADF Неверный файловый дескриптор fd.

EFAULT Аргумент указывает за пределы адресного пространства вызывающего процесса.

EINVAL Буфер результата слишком мал.

ENOENT Заданный каталог не существует.

ENOTDIR
Файловый дескриптор указывает не на каталог.



СООТВЕТСТВИЕ СТАНДАРТАМ


Данный вызов есть только в Linux.



ЗАМЕЧАНИЯ


В glibc нет обёртки для данного системного вызова; запускайте его с помощью
syscall(2). Структуру old_linux_dirent нужно определить самостоятельно. Однако

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 374 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar