getdirentries(2) — System Calls
OSF
NAME
getdirentries − Gets directory entries in a file-system independent format
SYNOPSIS
#include <dirent.h> int getdirentries(
int fd,
char ∗buf,
int nbytes,
long ∗basep );
PARAMETERS
fdSpecifies the file descriptor of a directory to be read.
bufPoints to a buffer containing the directory entries as dirent structures.
nbytesSpecifies the maximum amount of data to be transferred, in bytes.
basepPoints to the position of the block read.
DESCRIPTION
The getdirentries() function reads directory entries from a directory into a buffer. The entries are returned as dirent structures, a file-system independent format.
The nbytes parameter must be greater than or equal to the block size associated with the file (see the stat() function). Some file systems may 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 may 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 may 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 may 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.
RETURN VALUES
Upon successful completion, the actual number of bytes transferred is returned. Otherwise, −1 is returned and errno is set to indicate the error.
ERRORS
If the getdirentries() function fails, errno may be set to one of the following values:
[EBADF]The fd parameter is not a valid file descriptor open for reading.
[EFAULT]Either the buf or basep parameter point outside the allocated address space.
[EINVAL]The fd parameter is not a valid file descriptor for a directory.
[EIO]An I/O error occurred while reading from or writing to the file system.