|
getdirentries(2)
Contents
|
getdirentries - Get directory entries in a file-system
independent format.
#include <dirent.h>
int getdirentries(
int fd,
char *buf,
int nbytes,
long *basep );
Specifies the file descriptor of a directory to be read.
Points to a buffer containing the directory entries as
dirent structures. Specifies the maximum amount of data
to be transferred, in bytes. Points to the position of
the block read.
The getdirentries() function reads directory entries from
a directory into a buffer. The entries are returned as
dirent structures, a file-system independent format.
Caution
This call is not the POSIX-defined way to process directory
entries. For POSIX interfaces, use the opendir(),
readdir(), and closedir() library routines for reading and
interpreting directory entries.
The nbytes parameter should be greater than or equal to
the block size associated with the file. (See stat(2).)
Some file systems do not support the getdirentries() function
with buffers smaller than this size.
The entries returned by the getdirentries() function into
the location pointed to by buf can be separated by extra
space.
The getdirentries() function writes the position of the
block read into the location pointed to by the basep
parameter. Alternatively, the current position pointer can
be set and retrieved by lseek(). The current position
pointer should only be set to a value returned by lseek(),
a value returned in the location pointed to by basep, or 0
(zero).
Upon successful completion, the actual number of bytes
transferred is returned and the current position pointer
associated with the fd parameter is set to point to the
next block of entries. The file descriptor pointer might
not advance by the same number of bytes returned by the
getdirentries() function. A value of 0 (zero) is returned
when the end of the directory has been reached.
Upon successful completion, the actual number of bytes
transferred is returned. Otherwise, -1 is returned and
errno is set to indicate the error.
If the getdirentries() function fails, errno is set to one
of the following values: The fd parameter is not a valid
file descriptor open for reading. Either the buf or basep
parameter points outside the allocated address space.
Either the fd parameter is not a valid file descriptor for
a directory or the buffer is too small. An I/O error
occurred while the operating system was reading from or
writing to the file system.
Functions: lseek(2), open(2), stat(2), closedir(3),
opendir(3), readdir(3)
getdirentries(2)
[ Back ] |