Annotation of 43BSDReno/lib/libc/gen/directory.3, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1983 Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted provided
                      5: .\" that: (1) source distributions retain this entire copyright notice and
                      6: .\" comment, and (2) distributions including binaries display the following
                      7: .\" acknowledgement:  ``This product includes software developed by the
                      8: .\" University of California, Berkeley and its contributors'' in the
                      9: .\" documentation or other materials provided with the distribution and in
                     10: .\" all advertising materials mentioning features or use of this software.
                     11: .\" Neither the name of the University nor the names of its contributors may
                     12: .\" be used to endorse or promote products derived from this software without
                     13: .\" specific prior written permission.
                     14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17: .\"
                     18: .\"    @(#)directory.3 6.6 (Berkeley) 6/23/90
                     19: .\"
                     20: .TH DIRECTORY 3 "June 23, 1990"
                     21: .UC 5
                     22: .SH NAME
                     23: opendir, readdir, telldir, seekdir, rewinddir, closedir, dirfd \- directory operations
                     24: .SH SYNOPSIS
                     25: .nf
                     26: .ft B
                     27: #include <sys/types.h>
                     28: #include <dirent.h>
                     29: 
                     30: DIR *
                     31: opendir(const char *filename);
                     32: 
                     33: struct direct
                     34: *readdir(DIR * dirp);
                     35: 
                     36: long
                     37: telldir(const DIR *dirp);
                     38: 
                     39: void
                     40: seekdir(DIR *dirp, long loc);
                     41: 
                     42: void
                     43: rewinddir(DIR *dirp);
                     44: 
                     45: int
                     46: closedir(DIR *dirp);
                     47: 
                     48: int
                     49: dirfd(DIR *dirp)
                     50: .ft R
                     51: .fi
                     52: .SH DESCRIPTION
                     53: .I Opendir
                     54: opens the directory named by
                     55: .I filename
                     56: and associates a
                     57: .I directory stream
                     58: with it.
                     59: .I Opendir
                     60: returns a pointer to be used to identify the
                     61: .I directory stream
                     62: in subsequent operations.  The pointer
                     63: .SM
                     64: .B NULL
                     65: is returned if
                     66: .I filename
                     67: cannot be accessed, or if it cannot
                     68: .IR malloc (3)
                     69: enough memory to hold the whole thing.
                     70: .PP
                     71: .I Readdir
                     72: returns a pointer to the next directory entry.  It returns
                     73: .B NULL
                     74: upon reaching the end of the directory or detecting an invalid
                     75: .I seekdir
                     76: operation.
                     77: .PP
                     78: .I Telldir
                     79: returns the current location associated with the named
                     80: .I directory stream.
                     81: .PP
                     82: .I Seekdir
                     83: sets the position of the next
                     84: .I readdir
                     85: operation on the
                     86: .I directory stream.
                     87: The new position reverts to the one associated with the
                     88: .I directory stream
                     89: when the
                     90: .I telldir
                     91: operation was performed.  Values returned by
                     92: .I telldir
                     93: are good only for the lifetime of the DIR pointer from which they are derived.
                     94: If the directory is closed and then reopened, the 
                     95: .I telldir
                     96: value may be invalidated due to undetected directory compaction.
                     97: It is safe to use a previous
                     98: .I telldir
                     99: value immediately after a call to
                    100: .I opendir
                    101: and before any calls to
                    102: .I readdir.
                    103: .PP
                    104: .I Rewinddir
                    105: resets the position of the named
                    106: .I directory stream
                    107: to the beginning of the directory.
                    108: .PP
                    109: .I Closedir
                    110: closes the named
                    111: .I directory stream
                    112: and frees the structure associated with the DIR pointer,
                    113: returning 0 on success.
                    114: On failure, -1 is returned and errno is set to indicate the error.
                    115: .PP
                    116: .I Dirfd
                    117: returns the integer file descriptor associated with the named
                    118: .I directory stream,
                    119: see open(2).
                    120: .PP
                    121: Sample code which searchs a directory for entry ``name'' is:
                    122: .PP
                    123: .nf
                    124: .RS
                    125: len = strlen(name);
                    126: dirp = opendir(".");
                    127: for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
                    128:        if (dp->d_namlen == len && !strcmp(dp->d_name, name)) {
                    129:                (void)closedir(dirp);
                    130:                return FOUND;
                    131:        }
                    132: (void)closedir(dirp);
                    133: return NOT_FOUND;
                    134: .RE
                    135: .fi
                    136: .SH "SEE ALSO"
                    137: open(2), close(2), read(2), lseek(2), dir(5)

unix.superglobalmegacorp.com

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