Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ directory(3X) — GENIX 4.1A

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

open(2)

close(2)

read(2)

lseek(2)



      DIRECTORY(3X)           GENIX Programmer's Manual           DIRECTORY(3X)



      NAME
           opendir, readdir, telldir, seekdir, rewinddir, closedir  -  flexible
           length directory operations

      SYNOPSIS
           #include <dir.h>

           DIR *opendir(filename)
           char *filename;

           struct direct *readdir(dirp)
           DIR *dirp;

           long telldir(dirp)
           DIR *dirp;

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

           rewinddir(dirp)
           DIR *dirp;

           closedir(dirp)
           DIR *dirp;

           cc ... -lndir

      DESCRIPTION
           The purpose of this library is to simulate the new  flexible  length
           directory names of 4.2bsd Unix on top of the old directory structure
           of 4.1bsd.  It allows programs to be converted  immediately  to  the
           new  directory  access interface, so that they need only be relinked
           when 4.2bsd becomes available.

           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 operations.  The pointer
           NULL  is  returned if filename cannot be accessed or is not a direc-
           tory.

           readdir returns a pointer to the next directory entry.   It  returns
           NULL  upon reaching the end of the directory or detecting an invalid
           seekdir operation.

           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 operation was  performed.
           Values returned by telldir are good only for the lifetime of the DIR



      Printed 11/16/83                 8/1/82                                 1





      DIRECTORY(3X)           GENIX Programmer's Manual           DIRECTORY(3X)



           pointer from which they are derived.  If the directory is closed and
           then   reopened,  the  telldir  value  may  be  invalidated  due  to
           undetected directory compaction.  It  is  safe  to  use  a  previous
           telldir  value  immediately  after  a call to opendir and before any
           calls to readdir.

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

           closedir causes the named directory stream to  be  closed,  and  the
           structure associated with the DIR pointer to be freed.

           See /usr/include/dir.h for a description of the fields available  in
           a  directory  entry.  The preferred way to search the current direc-
           tory for entry "name" is:

                len = strlen(name);
                dirp = opendir(".");
                for (dp = readdir(dirp); dp != NULL; dp = readdir(dir))
                     if (dp->d_namlen == len && !strcmp(dp->d_name, name)) {
                          closedir(dirp);
                          return FOUND;
                     }
                closedir(dirp);
                return NOT_FOUND;

      LINKING
           This library is accessed by specifying "-lndir" as the last argument
           to the compile line, e.g.:

                cc -o prog prog.c -lndir

      SEE ALSO
           /usr/include/dir.h, open(2), close(2), read(2), lseek(2)

      AUTHOR
           Kirk   McKusick.    Report   problems   to   mckusick@berkeley    or
           ucbvax!mckusick.

















      Printed 11/16/83                 8/1/82                                 2



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