#include <unistd.h> #include <linux/types.h> #include <linux/dirent.h> #include <linux/unistd.h> _syscall3(int, getdents, uint, fd, struct dirent *, dirp, uint, count); int getdents(unsigned int fd, struct dirent *dirp, unsigned int count);
Системный вызов 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 является именем файла, которое завершается нулевым символом.
Данный вызов замещает readdir(2).
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |