home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 January / PCWorld_2000-01_cd.bin / Software / Servis / Devc / _SETUP.4 / Group3 / dirent.h < prev    next >
C/C++ Source or Header  |  1998-12-24  |  2KB  |  94 lines

  1. /*
  2.  * DIRENT.H (formerly DIRLIB.H)
  3.  *
  4.  * by M. J. Weinstein   Released to public domain 1-Jan-89
  5.  *
  6.  * Because I have heard that this feature (opendir, readdir, closedir)
  7.  * it so useful for programmers coming from UNIX or attempting to port
  8.  * UNIX code, and because it is reasonably light weight, I have included
  9.  * it in the Mingw32 package. I have also added an implementation of
  10.  * rewinddir, seekdir and telldir.
  11.  *   - Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
  12.  *
  13.  *  This code is distributed in the hope that is will be useful but
  14.  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
  15.  *  DISCLAMED. This includeds but is not limited to warranties of
  16.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  17.  *
  18.  * $Revision: 1.4 $
  19.  * $Author: colin $
  20.  * $Date: 1998/04/17 03:48:17 $
  21.  *
  22.  */
  23.  
  24. #ifndef    __STRICT_ANSI__
  25.  
  26. #ifndef _DIRENT_H_
  27. #define _DIRENT_H_
  28.  
  29. #include <dir.h>
  30.  
  31. #ifndef RC_INVOKED
  32.  
  33. #ifdef __cplusplus
  34. extern "C" {
  35. #endif
  36.  
  37. struct dirent
  38. {
  39.     long        d_ino;        /* Always zero. */
  40.     unsigned short    d_reclen;    /* Always zero. */
  41.     unsigned short    d_namlen;    /* Length of name in d_name. */
  42.     char*        d_name;        /* File name. */
  43.     /* NOTE: The name in the dirent structure points to the name in the
  44.      *       finddata_t structure in the DIR. */
  45. };
  46.  
  47. /*
  48.  * This is an internal data structure. Good programmers will not use it
  49.  * except as an argument to one of the functions below.
  50.  */
  51. typedef struct
  52. {
  53.     /* disk transfer area for this dir */
  54.     struct _finddata_t    dd_dta;
  55.  
  56.     /* dirent struct to return from dir (NOTE: this makes this thread
  57.      * safe as long as only one thread uses a particular DIR struct at
  58.      * a time) */
  59.     struct dirent        dd_dir;
  60.  
  61.     /* _findnext handle */
  62.     long            dd_handle;
  63.  
  64.     /*
  65.          * Status of search:
  66.      *   0 = not started yet (next entry to read is first entry)
  67.      *  -1 = off the end
  68.      *   positive = 0 based index of next entry
  69.      */
  70.     short            dd_stat;
  71.  
  72.     /* given path for dir with search pattern (struct is extended) */
  73.     char            dd_name[1];
  74. } DIR;
  75.  
  76.  
  77. DIR*        opendir (const char* szPath);
  78. struct dirent*    readdir (DIR* dir);
  79. int        closedir (DIR* dir);
  80. void        rewinddir (DIR* dir);
  81. long        telldir (DIR* dir);
  82. void        seekdir (DIR* dir, long lPos);
  83.  
  84. #ifdef    __cplusplus
  85. }
  86. #endif
  87.  
  88. #endif    /* Not RC_INVOKED */
  89.  
  90. #endif    /* Not _DIRENT_H_ */
  91.  
  92. #endif    /* Not __STRICT_ANSI__ */
  93.  
  94.