1/* 2 <ndir.h> -- definitions for 4.2BSD-compatible directory access 3 4 28-dec-1994 Richard Levitte 5 See ChangeLog for more recent modification history. 6*/ 7 8#ifndef NDIR_H 9 10#if 0 11#ifndef FAB$C_BID 12#include <fab.h> 13#endif 14#endif 15#ifndef NAM$C_BID 16#include <nam.h> 17#endif 18#if 0 19#ifndef RMS$_SUC 20#include <rmsdef.h> 21#endif 22#include <dir.h> 23#else 24#define DIR$S_NAME 80 25#endif 26 27#define DIRBLKSIZ 512 /* size of directory block */ 28#ifdef VMS 29#define MAXNAMLEN (DIR$S_NAME + 7) /* 80 plus room for version #. */ 30#define MAXFULLSPEC NAM$C_MAXRSS /* Maximum full spec */ 31#else 32#define MAXNAMLEN 15 /* maximum filename length */ 33#endif /* VMS */ 34 /* NOTE: MAXNAMLEN must be one less than a multiple of 4 */ 35 36struct direct /* data from readdir() */ 37 { 38 long d_ino; /* inode number of entry */ 39 unsigned short d_reclen; /* length of this record */ 40 unsigned short d_namlen; /* length of string in d_name */ 41 char d_name[MAXNAMLEN+1]; /* name of file */ 42 }; 43 44typedef struct 45 { 46 int dd_fd; /* file descriptor */ 47 int dd_loc; /* offset in block */ 48 int dd_size; /* amount of valid data */ 49 char dd_buf[DIRBLKSIZ]; /* directory block */ 50 } DIR; /* stream data from opendir() */ 51 52extern DIR *vms_opendir(); 53extern struct direct *vms_readdir(); 54#ifndef VMS 55extern long telldir(); 56extern void seekdir(); 57#endif 58extern int vms_closedir(); 59 60#define rewinddir( dirp ) seekdir( dirp, 0L ) 61 62#define NDIR_H 1 63#endif /* ndir.h */ 64