home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixlib36d / clib / h / dirent < prev    next >
Text File  |  1994-02-26  |  2KB  |  66 lines

  1. /* dirent.h (c) Copyright 1991 H.Rogers */
  2.  
  3. #ifndef __DIRENT_H
  4. #define __DIRENT_H
  5.  
  6. #ifndef __SYS_PARAM_H
  7. #include <sys/param.h>
  8. #endif
  9.  
  10. #ifndef __SYS_TYPES_H
  11. #include <sys/types.h>
  12. #endif
  13.  
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17.  
  18. #define MAXNAMLEN    MAXPATHLEN    /* don't assume ADFS braindamage */
  19.  
  20. /* This isn't really how ADFS stores files in a directory, but
  21.  * since no I/O is permitted on directories anyway this doesn't
  22.  * really matter. */
  23.  
  24. #define d_ino    d_fileno        /* compatibility */
  25.  
  26. struct    dirent
  27.   {
  28.   off_t     d_off;        /* offset of next disk directory entry */
  29.   ino_t     d_fileno;        /* file number of entry */
  30.   size_t    d_reclen;        /* length of this record */
  31.   size_t    d_namlen;        /* length of d_name */
  32.   char        d_name[MAXNAMLEN];    /* name */
  33.   };
  34.  
  35. #define DIRSIZ(dp) (((sizeof(struct dirent) - \
  36.     MAXNAMLEN + ((dp)->d_namlen + 1)) + \
  37.     (sizeof(int) - 1)) & ~(sizeof(int) - 1))
  38.  
  39. typedef struct
  40.   {
  41.   int        dd_fd;        /* file descriptor (unused) */
  42.   char        *dd_name;    /* directory name */
  43.   size_t    dd_loc;     /* buffer offset */
  44.   size_t    dd_size;    /* amount of valid data in buffer */
  45.   size_t    dd_bsize;    /* buffer size */
  46.   size_t    dd_off;     /* directory offset */
  47.   int        dd_off2;    /* offset of next read */
  48.   char        *dd_buf;    /* directory data buffer */
  49.   } __DIR;
  50.  
  51. #define DIR __DIR
  52.  
  53. extern    DIR        *opendir(char *);
  54. extern    struct dirent    *readdir(DIR *);
  55. extern    long        telldir(DIR *);
  56. extern    void        seekdir(DIR *,long);
  57. #define rewinddir(d)    (seekdir((d),(long)0),0)
  58. extern    void        (rewinddir)(DIR *);
  59. extern    int        closedir(DIR *);
  60.  
  61. #ifdef __cplusplus
  62.     }
  63. #endif
  64.  
  65. #endif
  66.