readdir(2) System Calls Manual readdir(2) NAZWA readdir - odczytuje wpis w katalogu BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include /* Definicja stalych SYS_* */ #include int syscall(SYS_readdir, unsigned int fd, struct old_linux_dirent *dirp, unsigned int count); Uwaga: Brak definicji struct old_linux_dirent; zob. UWAGI. OPIS Nie jest to funkcja, ktora cie interesuje. Opis implementacji interfejsu zgodnego z POSIX w bibliotece C znajduje sie w readdir(3). Niniejsza strona opisuje goly interfejs wywolania systemowego, ktory zostal zastapiony przez getdents(2). readdir() odczytuje jedna strukture old_linux_dirent z katalogu, na ktory wskazuje deskryptor pliku fd, do bufora, na ktory wskazuje dirp. Argument count jest ignorowany; odczytywana jest co najwyzej jedna struktura old_linux_dirent. Struktura old_linux_dirent jest zadeklarowana (prywatnie, w pliku jadra Linux fs/readdir.c) nastepujaco: struct old_linux_dirent { unsigned long d_ino; /* numer i-wezla */ unsigned long d_offset; /* offset do tego old_linux_dirent */ unsigned short d_namlen; /* dlugosc tego d_name */ char d_name[1]; /* nazwa pliku (zakonczona znakiem NUL) */ } d_ino is an inode number. d_offset is the distance from the start of the directory to this old_linux_dirent. d_reclen is the size of d_name, not counting the terminating null byte ('\0'). d_name is a null-terminated filename. WARTOSC ZWRACANA Po pomyslnym zakonczeniu zwracane jest 1. Po natrafieniu na koniec katalogu zwracane jest 0. Po bledzie zwracane jest -1 i ustawiane errno wskazujac blad. BLEDY EBADF Nieprawidlowy deskryptor fd. EFAULT Argument wskazuje poza przestrzen adresowa wywolujacego procesu. EINVAL Bufor na wynik jest za maly. ENOENT Nie ma takiego katalogu. ENOTDIR Deskryptor pliku nie odnosi sie do katalogu. WERSJE Konieczne jest samodzielne zdefiniowanie struktury old_linux_dirent. Powinno sie jednak raczej korzystac z readdir(3). To wywolanie systemowe nie istnieje na x86-64. STANDARDY Linux. ZOBACZ TAKZE getdents(2), readdir(3) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Przemek Borys , Andrzej Krzysztofowicz i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.9.1 15 czerwca 2024 r. readdir(2)