DIRREAD(2)                                             DIRREAD(2)
     NAME
          dirread - read directory
     SYNOPSIS
          #include <u.h>
          #include <libc.h>
          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 decodes the
          directory entries into a machine-dependent 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.
     SOURCE
          /sys/src/libc/9sys/dirread.c
     SEE ALSO
          intro(2), open(2), read(2)
     DIAGNOSTICS
          Sets errstr.
     Page 1                       Plan 9             (printed 11/4/25)