Scroll to navigation

READDIR(2) Podręcznik programisty Linuksa READDIR(2)

NAZWA

readdir - odczytanie wpisu w katalogu

SKŁADNIA

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

Uwaga: Do tego wywołania systemowego brak opakowania glibc, zob. UWAGI.

OPIS

Nie jest to funkcja, która cię interesuje. Opis implementacji interfejsu zgodnego z POSIX w bibliotece C znajduje się w readdir(3). Niniejsza strona opisuje goły interfejs wywołania systemowego, który został zastąpiony przez getdents(2).

readdir() reads one old_linux_dirent structure from the directory referred to by the file descriptor fd into the buffer pointed to by dirp. The argument count is ignored; at most one old_linux_dirent structure is read.

The old_linux_dirent structure is declared (privately in Linux kernel file fs/readdir.c) as follows:


struct old_linux_dirent {

unsigned long d_ino; /* numer i-węzła */
unsigned long d_offset; /* offset do tego old_linux_dirent */
unsigned short d_namlen; /* długość tego d_name */
char d_name[1]; /* nazwa pliku (zakończona znakiem NUL) */ }

d_ino jest numerem i-węzła. d_off jest odległością od początku katalogu do tego wpisu old_linux_dirent. d_reclen jest rozmiarem d_name, nie licząc kończącego znaku NUL. d_name jest zakończoną znakiem NUL nazwą pliku.

WARTOŚĆ ZWRACANA

Po pomyślnym zakończeniu zwracane jest 1. Po natrafieniu na koniec katalogu zwracane jest 0. Po błędzie zwracane jest -1 i odpowiednio ustawiane errno.

BŁĘDY

Nieprawidłowy deskryptor fd.
Argument wskazuje poza przestrzeń adresową wywołującego procesu.
Bufor na wynik jest za mały.
Nie ma takiego katalogu.
Deksryptor pliku nie odnosi się do katalogu.

ZGODNE Z

Tp wywołanie systemowe jest specyficzne dla Linuksa.

UWAGI

Glibc does not provide a wrapper for this system call; call it using syscall(2). You will need to define the old_linux_dirent structure yourself. However, probably you should use readdir(3) instead.

This system call does not exist on x86-64.

ZOBACZ TAKŻE

getdents(2), readdir(3)

O STRONIE

Angielska wersja tej strony pochodzi z wydania 5.10 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl> i Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres manpages-pl-list@lists.sourceforge.net.

6 marca 2019 r. Linux