Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ opendir(3X) — svr3 — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getdents(2)

dirent(4)



DIRECTORY(3X-SVR3)  RISC/os Reference Manual   DIRECTORY(3X-SVR3)



NAME
     directory: opendir, readdir, telldir, seekdir, rewinddir,
          closedir - directory operations

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

     DIR *opendir (filename)
     char *filename;

     struct dirent *readdir (dirp)
     DIR *dirp;

     long telldir (dirp)
     DIR *dirp;

     void seekdir (dirp, loc)
     DIR *dirp;
     long loc;

     void rewinddir (dirp)
     DIR *dirp;

     void closedir(dirp)
     DIR *dirp;

DESCRIPTION
     opendir opens the directory named by filename and associates
     a directory stream with it.  opendir returns a pointer to be
     used to identify the directory stream in subsequent opera-
     tions.  The pointer NULL is returned if filename cannot be
     accessed or is not a directory, or if it cannot malloc(3X)
     enough memory to hold a DIR structure or a buffer for the
     directory entries.

     readdir returns a pointer to the next active directory
     entry.  No inactive entries are returned.  It returns NULL
     upon reaching the end of the directory or upon detecting an
     invalid location in the directory.

     telldir returns the current location associated with the
     named directory stream.

     seekdir sets the position of the next readdir operation on
     the directory stream. The new position reverts to the one
     associated with the directory stream when the telldir opera-
     tion from which loc was obtained was performed.  Values
     returned by telldir are good only if the directory has not
     changed due to compaction or expansion.  This is not a prob-
     lem with System V, but it may be with some file system
     types.



                        Printed 11/19/92                   Page 1





DIRECTORY(3X-SVR3)  RISC/os Reference Manual   DIRECTORY(3X-SVR3)



     rewinddir resets the position of the named directory stream
     to the beginning of the directory.

     closedir closes the named directory stream and frees the DIR
     structure.

     The following errors can occur as a result of these opera-
     tions.

     opendir:

     [ENOTDIR]      A component of filename is not a directory.

     [EACCES]       A component of filename denies search permis-
                    sion.

     [EMFILE]       The maximum number of file descriptors are
                    currently open.

     [EFAULT]       filename points outside the allocated address
                    space.


     readdir:

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

     [EBADF]        The file descriptor determined by the DIR
                    stream is no longer valid.  This results if
                    the DIR stream has been closed.


     telldir, seekdir, and closedir:

     [EBADF]        The file descriptor determined by the DIR
                    stream is no longer valid.  This results if
                    the DIR stream has been closed.

EXAMPLE
     Sample code which searches a directory for entry name:

          dirp = opendir( "." );
          while ( (dp = readdir( dirp )) != NULL )
               if ( strcmp( dp->d_name, name ) == 0 )
                    {
                    closedir( dirp );
                    return FOUND;
                    }
          closedir( dirp );
          return NOT_FOUND;




 Page 2                 Printed 11/19/92





DIRECTORY(3X-SVR3)  RISC/os Reference Manual   DIRECTORY(3X-SVR3)



SEE ALSO
     getdents(2), dirent(4).

WARNINGS
     rewinddir is implemented as a macro, so its function address
     cannot be taken.














































                        Printed 11/19/92                   Page 3






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