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