Annotation of 42BSD/usr.lib/sendmail/lib/libndir/directory.3s, revision 1.1.1.1

1.1       root        1: ..From teklabs!ogcvax!root  Tue Aug  3 05:14:38 1982
                      2: ..TH DIRECTORY 3  "OGC Revision  8/02/82"
                      3: .TH DIRECTORY 3X 8/1/82
                      4: .UC 4.1b Compatability
                      5: .SH NAME
                      6: opendir, readdir, telldir, seekdir, rewinddir, closedir \- flexible length directory operations
                      7: .SH SYNOPSIS
                      8: .B #include <dir.h>
                      9: .PP
                     10: .SM
                     11: .B DIR
                     12: .B *opendir(filename)
                     13: .br
                     14: .B char *filename;
                     15: .PP
                     16: .SM
                     17: .B struct direct
                     18: .B *readdir(dirp)
                     19: .br
                     20: .B DIR *dirp;
                     21: .PP
                     22: .SM
                     23: .B long
                     24: .B telldir(dirp)
                     25: .br
                     26: .B DIR *dirp;
                     27: .PP
                     28: .SM
                     29: .B seekdir(dirp, loc)
                     30: .br
                     31: .B DIR *dirp;
                     32: .br
                     33: .B long loc;
                     34: .PP
                     35: .SM
                     36: .B rewinddir(dirp)
                     37: .br
                     38: .B DIR *dirp;
                     39: .PP
                     40: .SM
                     41: .B closedir(dirp)
                     42: .br
                     43: .B DIR *dirp;
                     44: .PP
                     45: .SM
                     46: .B cc ... -lndir
                     47: .SH DESCRIPTION
                     48: The purpose of this library is to simulate
                     49: the new flexible length directory names of 4.2bsd Unix
                     50: on top of the old directory structure of 4.1bsd.
                     51: It allows programs to be converted immediately
                     52: to the new directory access interface,
                     53: so that they need only be relinked
                     54: when 4.2bsd becomes available.
                     55: .PP
                     56: .I opendir
                     57: opens the directory named by
                     58: .I filename
                     59: and associates a
                     60: .I directory stream
                     61: with it.
                     62: .I opendir
                     63: returns a pointer to be used to identify the
                     64: .I directory stream
                     65: in subsequent operations.
                     66: The pointer
                     67: .SM
                     68: .B NULL
                     69: is returned if
                     70: .I filename
                     71: cannot be accessed or is not a directory.
                     72: .PP
                     73: .I readdir
                     74: returns a pointer to the next directory entry.
                     75: It returns
                     76: .B NULL
                     77: upon reaching the end of the directory or detecting
                     78: an invalid
                     79: .I seekdir
                     80: operation.
                     81: .PP
                     82: .I telldir
                     83: returns the current location associated with the named
                     84: .I directory stream.
                     85: .PP
                     86: .I seekdir
                     87: sets the position of the next
                     88: .I readdir
                     89: operation on the
                     90: .I directory stream.
                     91: The new position reverts to the one associated with the
                     92: .I directory stream
                     93: when the
                     94: .I telldir
                     95: operation was performed.
                     96: Values returned by
                     97: .I telldir
                     98: are good only for the lifetime of the DIR pointer from 
                     99: which they are derived.
                    100: If the directory is closed and then reopened, 
                    101: the 
                    102: .I telldir
                    103: value may be invalidated
                    104: due to undetected directory compaction.
                    105: It is safe to use a previous
                    106: .I telldir
                    107: value immediately after a call to
                    108: .I opendir
                    109: and before any calls to
                    110: .I readdir.
                    111: .PP
                    112: .I rewinddir
                    113: resets the position of the named
                    114: .I directory stream
                    115: to the beginning of the directory.
                    116: .PP
                    117: .I closedir
                    118: causes the named
                    119: .I directory stream
                    120: to be closed,
                    121: and the structure associated with the DIR pointer to be freed.
                    122: .PP
                    123: See /usr/include/dir.h for a description of the fields available in
                    124: a directory entry.
                    125: The preferred way to search the current directory for entry "name" is:
                    126: .br
                    127: .sp
                    128:        len = strlen(name);
                    129: .br
                    130:        dirp = opendir(".");
                    131: .br
                    132:        for (dp = readdir(dirp); dp != NULL; dp = readdir(dir))
                    133: .br
                    134:                if (dp->d_namlen == len && !strcmp(dp->d_name, name)) {
                    135: .br
                    136:                        closedir(dirp);
                    137: .br
                    138:                        return FOUND;
                    139: .br
                    140:                }
                    141: .br
                    142:        closedir(dirp);
                    143: .br
                    144:        return NOT_FOUND;
                    145: .SH LINKING
                    146: This library is accessed by specifying "-lndir" as the
                    147: last argument to the compile line, e.g.:
                    148: .br
                    149: .sp
                    150:        cc -o prog prog.c -lndir
                    151: .SH "SEE ALSO"
                    152: /usr/include/dir.h,
                    153: open(2),
                    154: close(2),
                    155: read(2),
                    156: lseek(2)
                    157: .SH AUTHOR
                    158: Kirk McKusick.
                    159: Report problems to mckusick@berkeley or ucbvax!mckusick.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.