| 1 | /* |
| 2 | <dir.h> -- definitions for 4.2BSD-compatible directory access |
| 3 | |
| 4 | last edit: 09-Jul-1983 D A Gwyn |
| 5 | |
| 6 | * The code here is forced by the interface, and is not subject to |
| 7 | * copyright, constituting the only possible expression of the |
| 8 | * algorithm in this format. |
| 9 | */ |
| 10 | |
| 11 | #define DIRBLKSIZ 512 /* size of directory block */ |
| 12 | #ifdef WINDOWSNT |
| 13 | #define MAXNAMLEN 255 |
| 14 | #else /* not WINDOWSNT */ |
| 15 | #define MAXNAMLEN 15 /* maximum filename length */ |
| 16 | #endif /* not WINDOWSNT */ |
| 17 | /* NOTE: MAXNAMLEN must be one less than a multiple of 4 */ |
| 18 | |
| 19 | struct direct /* data from readdir() */ |
| 20 | { |
| 21 | long d_ino; /* inode number of entry */ |
| 22 | unsigned short d_reclen; /* length of this record */ |
| 23 | unsigned short d_namlen; /* length of string in d_name */ |
| 24 | char d_name[MAXNAMLEN+1]; /* name of file */ |
| 25 | }; |
| 26 | |
| 27 | typedef struct |
| 28 | { |
| 29 | int dd_fd; /* file descriptor */ |
| 30 | int dd_loc; /* offset in block */ |
| 31 | int dd_size; /* amount of valid data */ |
| 32 | char dd_buf[DIRBLKSIZ]; /* directory block */ |
| 33 | } DIR; /* stream data from opendir() */ |
| 34 | |
| 35 | extern DIR *opendir(); |
| 36 | extern struct direct *readdir(); |
| 37 | extern long telldir(); |
| 38 | extern void seekdir(); |
| 39 | extern void closedir(); |
| 40 | |
| 41 | #define rewinddir( dirp ) seekdir( dirp, 0L ) |
| 42 | |
| 43 | /* arch-tag: aea50570-ffb7-43fd-b423-7743b10fbe6e |
| 44 | (do not change this comment) */ |