Patch-ID: bash40-030
[bash.git] / lib / glob / ndir.h
blob31261eb026ac7534227b3ffde42ff168ef7572f3
1 /* <dir.h> -- definitions for 4.2BSD-compatible directory access.
2 last edit: 09-Jul-1983 D A Gwyn. */
4 #if defined (VMS)
5 # if !defined (FAB$C_BID)
6 # include <fab.h>
7 # endif
8 # if !defined (NAM$C_BID)
9 # include <nam.h>
10 # endif
11 # if !defined (RMS$_SUC)
12 # include <rmsdef.h>
13 # endif
14 # include "dir.h"
15 #endif /* VMS */
17 /* Size of directory block. */
18 #define DIRBLKSIZ 512
20 /* NOTE: MAXNAMLEN must be one less than a multiple of 4 */
22 #if defined (VMS)
23 # define MAXNAMLEN (DIR$S_NAME + 7) /* 80 plus room for version #. */
24 # define MAXFULLSPEC NAM$C_MAXRSS /* Maximum full spec */
25 #else
26 # define MAXNAMLEN 15 /* Maximum filename length. */
27 #endif /* VMS */
29 /* Data from readdir (). */
30 struct direct {
31 long d_ino; /* Inode number of entry. */
32 unsigned short d_reclen; /* Length of this record. */
33 unsigned short d_namlen; /* Length of string in d_name. */
34 char d_name[MAXNAMLEN + 1]; /* Name of file. */
37 /* Stream data from opendir (). */
38 typedef struct {
39 int dd_fd; /* File descriptor. */
40 int dd_loc; /* Offset in block. */
41 int dd_size; /* Amount of valid data. */
42 char dd_buf[DIRBLKSIZ]; /* Directory block. */
43 } DIR;
45 extern DIR *opendir ();
46 extern struct direct *readdir ();
47 extern long telldir ();
48 extern void seekdir (), closedir ();
50 #define rewinddir(dirp) seekdir (dirp, 0L)