Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getdents(2) — Atari System V 1.1-06

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

directory(3C)

dirent(4)





   getdents(2)                                                     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 an open(2) or dup(2) 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.





   8/91                                                                 Page 1









   getdents(2)                                                     getdents(2)


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

   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                                                                 8/91





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