2 <dirent.h> -- definitions for SVR3 directory access routines
4 last edit: 25-Apr-1987 D A Gwyn
6 Prerequisite: <sys/types.h>
21 struct dirent { /* data from getdents()/readdir() */
22 long d_ino; /* inode number of entry */
23 off_t d_off; /* offset of disk directory entry */
24 unsigned short d_reclen; /* length of this record */
25 char d_name[1]; /* name of file (non-POSIX) */
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; /* -> directory block */
33 } DIR; /* stream data from opendir() */
37 * The following nonportable ugliness could have been avoided by defining
38 * DIRENTSIZ and DIRENTBASESIZ to also have (struct dirent *) arguments.
40 #define DIRENTBASESIZ (((struct dirent *)0)->d_name \
41 - (char *)&((struct dirent *)0)->d_ino)
42 #define DIRENTSIZ( namlen ) ((DIRENTBASESIZ + sizeof(long) + (namlen)) \
43 / sizeof(long) * sizeof(long))
45 #define MAXNAMLEN 512 /* maximum filename length */
48 #define NAME_MAX (MAXNAMLEN - 1) /* DAG -- added for POSIX */
51 #define DIRBUF 8192 /* buffer size for fs-indep. dirs */
52 /* must in general be larger than the filesystem buffer size */
54 extern DIR *opendir();
55 extern struct dirent *readdir();
56 extern OFFSET telldir();
57 extern void seekdir();
58 extern int closedir();
60 #endif /* _PAX_DIRENT_H */