readdir

Autres langues

Langue: pl

Autres versions - même langue

Version: 1995-07-22 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

NAZWA

readdir - odczytanie wpisu w katalogu

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

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.

ZOBACZ TAK¯E

getdents(2), readdir(3)