long dirread(int fd, Dir **buf)
long dirreadall(int fd, Dir **buf)
#define STATMAX 65535U
#define DIRMAX (sizeof(Dir)+STATMAX)
The data returned by a
on a directory is a set of complete directory entries
in a machine-independent format, exactly equivalent to
the result of a
on each file or subdirectory in the directory.
Dirread decodes the directory entries into a machine-dependent form.
It reads from
fd and unpacks the data into an array of
whose address is returned in
for the layout of a
Dir). The array is allocated with
dirread is called.
Dirreadall is like
dirread, but reads in the entire directory; by contrast,
dirread steps through a directory one
at a time.
Directory entries have variable length.
read of a directory always returns an integral number of complete directory entries;
dirread always returns complete
for more information.
STATMAX is the maximum size that a directory entry can occupy.
DIRMAX is an upper limit on the size necessary to hold a
Dir structure and all the associated data.
dirreadall return the number of
Dir structures filled in
buf. The file offset is advanced by the number of bytes actually read.