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. WERSJE. 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 jest numerem i-wezla. d_off jest odlegloscia od poczatku katalogu do tego wpisu old_linux_dirent. d_reclen jest rozmiarem d_name, nie liczac konczacego znaku NUL ('\0'). d_name jest zakonczona znakiem NUL nazwa pliku. 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 Tlumaczenie niniejszej strony podrecznika: 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.18 8 lutego 2026 r. readdir(2)