Merge from emacs-24; up to 2012-04-25T15:23:19Z!sdl.web@gmail.com
[emacs.git] / src / ndir.h
blobcd7cdbe55f5554d4e40f1eb0da928806c2a91337
1 /*
2 <dir.h> -- definitions for 4.2BSD-compatible directory access
4 last edit: 09-Jul-1983 D A Gwyn
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 */
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 */
19 struct direct /* data from readdir() */
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 */
27 typedef struct
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() */
35 extern DIR *opendir (char *);
36 extern struct direct *readdir (DIR *);
37 extern void seekdir (DIR *, long);
38 extern void closedir (DIR *);
40 #define rewinddir( dirp ) seekdir( dirp, 0L )