Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getdents(2) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

directory(3C)

dirent(4)



getdents(2)                      UNIX System V                      getdents(2)


NAME
      getdents - read directory entries and put in a file system independent
      format

SYNOPSIS
      #include <sys/dirent.h>

      int getdents (int fildes, struct dirent *buf, sizet nbyte);

DESCRIPTION
      fildes is a file descriptor obtained from a creat, open, dup, fcntl,
      pipe, or ioctl system call.

      getdents attempts to read nbyte bytes from the directory associated with
      fildes and to format them as file system independent directory entries in
      the buffer pointed to by buf.  Since the file system independent
      directory entries are of variable length, in most cases the actual number
      of bytes returned will be strictly less than nbyte.  See dirent(4) to
      calculate the number of bytes.

      The file system independent directory entry is specified by the dirent
      structure.  For a description of this see dirent(4).

      On devices capable of seeking, getdents starts at a position in the file
      given by the file pointer associated with fildes.  Upon return from
      getdents, the file pointer is incremented to point to the next directory
      entry.

      This system call was developed in order to implement the readdir routine
      [for a description, see directory(3C)], and should not be used for other
      purposes.

      getdents will fail if one or more of the following are true:

      EBADF          fildes is not a valid file descriptor open for reading.

      EFAULT         buf points outside the allocated address space.

      EINVAL         nbyte is not large enough for one directory entry.

      ENOENT         The current file pointer for the directory is not located
                     at a valid entry.

      ENOLINK        fildes points to a remote machine and the link to that
                     machine is no longer active.

      ENOTDIR        fildes is not a directory.

      EIO            An I/O error occurred while accessing the file system.





10/89                                                                    Page 1







getdents(2)                      UNIX System V                      getdents(2)


SEE ALSO
      directory(3C)

      dirent(4) in the System Administrator's Reference Manual

DIAGNOSTICS
      Upon successful completion a non-negative integer is returned indicating
      the number of bytes actually read.  A value of 0 indicates the end of the
      directory has been reached.  If the system call failed, a -1 is returned
      and errno is set to indicate the error.












































Page 2                                                                    10/89





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026