Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getdents(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

directory(3C)

dirent(4)

getdents(2)                                                     getdents(2)

NAME
     getdents - convert directory entries

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 significantly 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 apply:

     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.







Page 1                       Reliant UNIX 5.44                Printed 11/98

getdents(2)                                                     getdents(2)

RESULT
     Upon successful completion a non-negative integer is returned indicat-
     ing 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.

SEE ALSO
     directory(3C), dirent(4).














































Page 2                       Reliant UNIX 5.44                Printed 11/98

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