|
|
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)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.