Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getdents(2) — NEWS-os 5.0.1

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.



                                                                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.










































                                                                2



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