Документация по LinuxLinuxDoc.Ru 🔍

readdir - считывает данные каталога

НАЗВАНИЕ
readdir - считывает данные каталога

СИНТАКСИС
#include
#include
#include

_syscall3(int, readdir, uint, fd, struct dirent *, dirp, uint, count);

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

ОПИСАНИЕ
Это не та функция, которая может вызвать у Вас интерес.
См. readdir(3), в которой описан совместимый с POSIX
интерфейс C-библиотеки. Эта страница описывает интерфейс
прямого системного вызова ядра, который может меняться. Он
может быть легко заменен getdents(2).

readdir записывает одну структуру dirent из каталога,
заданного fd , в область памяти, указанную dirp. Параметр
count игнорируется; почти всегда считывается одна
структура dirent.

Структура dirent определена следующим образом:

struct dirent
{
long d_ino; /* номер inode */
off_t d_off; /* смещение на dirent */
unsigned short d_reclen; /* длина d_name */
char d_name [NAME_MAX+1]; /* имя файла (оканчивающееся нулем) */
}

d_ino - это номер inode. d_off - смещение записи dirent
от начала каталога. d_reclen - длина d_name без учета
последнего нуля. d_name - оканчивающееся нулем имя файла.


ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При удачном завершении вызова возвращаемое значение равно.
В конец каталога возвращается 0. При ошибке возвращается
-1, а переменной errno присваивается номер ошибки.

КОДЫ ОШИБОК
EBADF Неправильный описатель файла fd.

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

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

ENOENT Каталог не найден.

ENOTDIR
Описатель файла не относится к каталогу.

СООТВЕТСТВИЕ СТАНДАРТАМ
Эта функция специфична для Linux. Не рекомендуется
использовать ее в программах, переносимых в другие
системы.
Читать новости Linux в Telegram
Linux - readdir - считывает данные каталога
Мы в соцсетях ✉