SKŁADNIA
#include <unistd.h>
#include <linux/dirent.h>
#include <linux/unistd.h>
_syscall3(int, readdir, uint, fd, struct dirent *, dirp, uint, count);
int readdir(unsigned int fd, struct dirent *dirp, unsigned int count);
OPIS
Uwaga! To tłumaczenie może być nieaktualne!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 może ulec zmianie i który został zastąpiony przez getdents(2).
readdir odczytuje do wskazywanego przez dirp obszaru pamięci jedną strukturę dirent z katalogu, na który wskazuje fd. Parametr count jest ignorowany; odczytywana jest co najwyżej jedna struktura.
Struktura dirent jest zadeklarowana następująco:
-
struct dirent { long d_ino; /* numer i-węzła */ off_t d_off; /* offset do tego dirent */ unsigned short d_reclen; /* długość tego d_name */ char d_name [NAME_MAX+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 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
- EBADF
- Nieprawidłowy deskryptor fd.
- EFAULT
- Argument wskazuje poza przestrzeń adresową wywołującego procesu.
- EINVAL
- Bufor na wynik jest za mały.
- ENOENT
- Nie ma takiego katalogu.
- ENOTDIR
- Deksryptor pliku nie odnosi się do katalogu.
ZGODNE Z
Tp wywołanie systemowe jest specyficzne dla Linuksa.INFORMACJE O TŁUMACZENIU
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:- man --locale=C 2 readdir
Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.