man(1) Manual page archive


     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.