|Linux & Unix Commands - Search Man Pages
getdents(2) System Calls getdents(2)
getdents - read directory entries and put in a file system independent format
int getdents(int fildes, struct dirent *buf, size_t nbyte);
The getdents() function attempts to read nbyte bytes from the directory associated with
the file descriptor fildes and to format them as file system independent directory entries
in the buffer pointed to by buf. Since the file system independent directory entries are
of variable lengths, in most cases the actual number of bytes returned will be less than
nbyte. The file system independent directory entry is specified by the dirent structure.
On devices capable of seeking, getdents() starts at a position in the file given by the
file pointer associated with fildes. Upon return from getdents(), the file pointer is
incremented to point to the next directory entry.
Upon successful completion, a non-negative integer is returned indicating the number of
bytes actually read. A return value of 0 indicates the end of the directory has been
reached. Otherwise, -1 is returned and errno is set to indicate the error.
The getdents() function will fail if:
EBADF The fildes argument is not a valid file descriptor open for reading.
EFAULT The buf argument points to an illegal address.
EINVAL The nbyte argument is not large enough for one directory entry.
EIO An I/O error occurred while accessing the file system.
ENOENT The current file pointer for the directory is not located at a valid entry.
ENOLINK The fildes argument points to a remote machine and the link to that machine
is no longer active.
ENOTDIR The fildes argument is not a directory.
EOVERFLOW The value of the dirent structure member d_ino or d_off cannot be represented
in an ino_t or off_t.
The getdents() function was developed to implement the readdir(3C) function and should not
be used for other purposes.
The getdents() function has a transitional interface for 64-bit file offsets. See
readdir(3C), dirent.h(3HEAD), lf64(5)
SunOS 5.11 17 Jul 2001 getdents(2)
All times are GMT -4. The time now is 07:26 PM.