NAME

     directory, opendir, readdir, rewinddir,  closedir,  telldir,
     seekdir - directory routines


SYNOPSIS

     #include <sys/types.h>
     #include <dirent.h>

     DIR *opendir(const char *dirname)
     struct dirent *readdir(DIR *dirp)
     void rewinddir(DIR *dirp)
     int closedir(DIR *dirp)

     #define _MINIX  1
     #include <sys/types.h>
     #include <dirent.h>

     long telldir(DIR *dirp)
     int seekdir(DIR *dirp, long pos)


DESCRIPTION

     These routines form a system independent interface to access
     directories.

     Opendir() opens the directory dirname and returns a  pointer
     to this open directory stream.

     Readdir() reads one entry from the directory as a pointer to
     a  structure  containing the field d_name, a character array
     containing the null-terminated name of the entry.

     Rewinddir() allows the directory to be read again  from  the
     beginning.

     Closedir() closes the directory and releases  administrative
     data.

     The MINIX 3 specific functions telldir() and seekdir() allow
     one to get the current position in the directory file and to
     return there later.  Seekdir() may only  be  called  with  a
     position  returned  by telldir() or 0 (rewind).  These func-
     tions should not be used in portable programs.


SEE ALSO

     dir(5).


DIAGNOSTICS

     Opendir() returns a null pointer if dirname can't be opened,
     or if it can't allocate enough memory for the DIR structure.

     Readdir() returns  null  if  there  are  no  more  directory
     entries or on error.
     Closedir() and seekdir() returns 0 on success, -1 on error.

     Telldir() returns -1 on error.

     All of them set errno appropriately.   Readdir()  will  only
     set  errno  on  error,  not on end-of-dir, so you should set
     errno to zero beforehand, and check its value  if  readdir()
     returns null.


NOTES

     The return value of readdir() needs to be copied before  the
     next operation on the same directory if it is to be saved.


AUTHOR

     Kees J. Bot (kjb@cs.vu.nl)