Annotation of 43BSDTahoe/man/man3/directory.3, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1983 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)directory.3 6.3 (Berkeley) 12/22/86
                      6: .\"
                      7: .TH DIRECTORY 3 "December 22, 1986"
                      8: .UC 5
                      9: .SH NAME
                     10: opendir, readdir, telldir, seekdir, rewinddir, closedir, dirfd \- directory operations
                     11: .SH SYNOPSIS
                     12: .B #include <sys/types.h>
                     13: .br
                     14: .B #include <sys/dir.h>
                     15: .PP
                     16: .SM
                     17: .B DIR
                     18: .B *opendir(filename)
                     19: .br
                     20: .B char *filename;
                     21: .PP
                     22: .B struct direct
                     23: .B *readdir(dirp)
                     24: .br
                     25: .SM
                     26: .B DIR
                     27: .B *dirp;
                     28: .PP
                     29: .B long
                     30: .B telldir(dirp)
                     31: .br
                     32: .SM
                     33: .B DIR
                     34: .B *dirp;
                     35: .PP
                     36: .B seekdir(dirp, loc)
                     37: .br
                     38: .SM
                     39: .B DIR
                     40: .B *dirp;
                     41: .br
                     42: .B long loc;
                     43: .PP
                     44: .B rewinddir(dirp)
                     45: .br
                     46: .SM
                     47: .B DIR
                     48: .B *dirp;
                     49: .PP
                     50: .B closedir(dirp)
                     51: .br
                     52: .SM
                     53: .B DIR
                     54: .B *dirp;
                     55: .PP
                     56: .B dirfd(dirp)
                     57: .br
                     58: .SM
                     59: .B DIR
                     60: .B *dirp;
                     61: .SH DESCRIPTION
                     62: .I Opendir
                     63: opens the directory named by
                     64: .I filename
                     65: and associates a
                     66: .I directory stream
                     67: with it.
                     68: .I Opendir
                     69: returns a pointer to be used to identify the
                     70: .I directory stream
                     71: in subsequent operations.  The pointer
                     72: .SM
                     73: .B NULL
                     74: is returned if
                     75: .I filename
                     76: cannot be accessed, or if it cannot
                     77: .IR malloc (3)
                     78: enough memory to hold the whole thing.
                     79: .PP
                     80: .I Readdir
                     81: returns a pointer to the next directory entry.  It returns
                     82: .B NULL
                     83: upon reaching the end of the directory or detecting an invalid
                     84: .I seekdir
                     85: operation.
                     86: .PP
                     87: .I Telldir
                     88: returns the current location associated with the named
                     89: .I directory stream.
                     90: .PP
                     91: .I Seekdir
                     92: sets the position of the next
                     93: .I readdir
                     94: operation on the
                     95: .I directory stream.
                     96: The new position reverts to the one associated with the
                     97: .I directory stream
                     98: when the
                     99: .I telldir
                    100: operation was performed.  Values returned by
                    101: .I telldir
                    102: are good only for the lifetime of the DIR pointer from which they are derived.
                    103: If the directory is closed and then reopened, the 
                    104: .I telldir
                    105: value may be invalidated due to undetected directory compaction.
                    106: It is safe to use a previous
                    107: .I telldir
                    108: value immediately after a call to
                    109: .I opendir
                    110: and before any calls to
                    111: .I readdir.
                    112: .PP
                    113: .I Rewinddir
                    114: resets the position of the named
                    115: .I directory stream
                    116: to the beginning of the directory.
                    117: .PP
                    118: .I Closedir
                    119: closes the named
                    120: .I directory stream
                    121: and frees the structure associated with the DIR pointer.
                    122: .PP
                    123: .I Dirfd
                    124: returns the integer file descriptor associated with the named
                    125: .I directory stream,
                    126: see open(2).
                    127: .PP
                    128: Sample code which searchs a directory for entry ``name'' is:
                    129: .PP
                    130: .br
                    131:        len = strlen(name);
                    132: .br
                    133:        dirp = opendir(".");
                    134: .br
                    135:        for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
                    136: .br
                    137:                if (dp->d_namlen == len && !strcmp(dp->d_name, name)) {
                    138: .br
                    139:                        closedir(dirp);
                    140: .br
                    141:                        return FOUND;
                    142: .br
                    143:                }
                    144: .br
                    145:        closedir(dirp);
                    146: .br
                    147:        return NOT_FOUND;
                    148: .SH "SEE ALSO"
                    149: open(2),
                    150: close(2),
                    151: read(2),
                    152: lseek(2),
                    153: dir(5)

unix.superglobalmegacorp.com

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