DIRREAD(2)                                             DIRREAD(2)

     NAME
          dirread - read directory

     SYNOPSIS
          int dirread(int fd, Dir *buf, long nbytes)

     DESCRIPTION
          The data returned by a read(2) on a directory is a set of
          complete directory entries in a machine-independent format,
          exactly equivalent to the result of a stat(2) on each file
          or subdirectory in the directory.  Dirread returns the
          entries decoded into an addressable form.  It reads from fd
          and unpacks the data into Dir structures in buf (see stat(2)
          for the layout of a Dir).  Nbytes is the size of buf; it
          should be a multiple of sizeof(Dir).  Directory entries have
          length DIRLEN (defined in <libc.h>) in machine-independent
          form.  A successful read of a directory always returns a
          multiple of DIRLEN; dirread always returns a multiple of
          sizeof(Dir).

          Dirread returns the number of bytes filled in buf; the num-
          ber returned may be less than the number requested.  The
          file offset is advanced by the number of bytes actually
          read.

     SEE ALSO
          intro(2), open(2), read(2)

     DIAGNOSTICS
          Sets errstr.

     Page 1                       Plan 9             (printed 3/28/24)