home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / DIRENT.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  4KB  |  153 lines

  1. /*  dirent.h
  2.  
  3.     Definitions for POSIX directory operations.
  4.  
  5. */
  6.  
  7. /*
  8.  *      C/C++ Run Time Library - Version 8.0
  9.  *
  10.  *      Copyright (c) 1991, 1997 by Borland International
  11.  *      All Rights Reserved.
  12.  *
  13.  */
  14. /* $Revision:   8.2  $ */
  15.  
  16. #ifndef __DIRENT_H
  17. #define __DIRENT_H
  18.  
  19. #if !defined(___DEFS_H)
  20. #include <_defs.h>
  21. #endif
  22.  
  23. #ifndef NULL
  24. #include <_null.h>
  25. #endif
  26.  
  27. #if defined(__WIN32__)
  28. #include <windows.h>  /* For WIN32_FIND_DATA */
  29. #endif
  30.  
  31.  
  32. #if !defined(RC_INVOKED)
  33.  
  34. #if defined(__STDC__)
  35. #pragma warn -nak
  36. #endif
  37.  
  38. #pragma pack(push, 1)
  39.  
  40. #endif  /* !RC_INVOKED */
  41.  
  42.  
  43. #ifdef __cplusplus
  44. extern "C" {
  45. #endif
  46.  
  47.  
  48. /* dirent structure returned by readdir().
  49.  */
  50. struct dirent
  51. {
  52. #if defined(__OS2__)
  53.     char        d_name[256];
  54. #elif defined(__WIN32__) || defined(__DPMI32__)
  55.     char        d_name[260];
  56. #else
  57.     char        d_name[13];
  58. #endif
  59. };
  60.  
  61.  
  62. #if !defined(__FLAT__)
  63.  
  64. /* _DIR type returned by _opendir().  The first two members cannot
  65.  * be separated, because they make up the DOS DTA structure used
  66.  * by _findfirst() and _findnext().
  67.  */
  68. typedef struct
  69. {
  70.     char           _d_reserved[30];      /* reserved part of DTA */
  71.     struct dirent  _d_dirent;            /* filename part of DTA */
  72.     char    _FAR  *_d_dirname;           /* directory name */
  73.     char           _d_first;             /* first file flag */
  74.     unsigned char  _d_magic;             /* magic cookie for verifying handle */
  75. } DIR;
  76.  
  77. #else    /* defined __FLAT__ */
  78.  
  79.  
  80. /* wdirent structure returned by wreaddir().
  81.  */
  82. struct wdirent
  83. {
  84.     wchar_t        d_name[260];
  85. };
  86.  
  87. /* DIR type returned by opendir().  The members of this structure
  88.  * must not be accessed by application programs.
  89.  */
  90. typedef struct
  91. {
  92.     unsigned long _d_hdir;              /* directory handle */
  93.     char         *_d_dirname;           /* directory name */
  94.     unsigned      _d_magic;             /* magic cookie for verifying handle */
  95.     unsigned      _d_nfiles;            /* no. of files remaining in buf */
  96. #if defined(__OS2__)
  97.     char         *_d_bufp;              /* next entry in buffer */
  98.     char          _d_buf[512];          /* buffer for found filenames */
  99. #endif
  100. #if defined(__WIN32__)
  101.     char          _d_buf[sizeof(WIN32_FIND_DATA)];  /* buffer for a single file */
  102. #endif
  103. } DIR;
  104.  
  105. typedef struct
  106. {
  107.     unsigned long _d_hdir;              /* directory handle */
  108.     wchar_t      *_d_dirname;           /* directory name */
  109.     unsigned      _d_magic;             /* magic cookie for verifying handle */
  110.     unsigned      _d_nfiles;            /* no. of files remaining in buf */
  111. #if defined(__OS2__)
  112.     char         *_d_bufp;              /* next entry in buffer */
  113.     char          _d_buf[512];          /* buffer for found filenames */
  114. #endif
  115. #if defined(__WIN32__)
  116.     char          _d_buf[sizeof(WIN32_FIND_DATA)];  /* buffer for a single file */
  117. #endif
  118. } wDIR;
  119.  
  120. wDIR           * _RTLENTRY _EXPFUNC wopendir  (const wchar_t *__dirname);
  121. struct wdirent * _RTLENTRY _EXPFUNC wreaddir  (wDIR *__dir);
  122. int              _RTLENTRY _EXPFUNC wclosedir (wDIR *__dir);
  123. void             _RTLENTRY _EXPFUNC wrewinddir(wDIR *__dir);
  124.  
  125. #endif  /* __FLAT__ */
  126.  
  127. /* Prototypes.
  128.  */
  129. DIR            _FAR * _RTLENTRY _EXPFUNC opendir  (const char _FAR *__dirname);
  130. struct dirent  _FAR * _RTLENTRY _EXPFUNC readdir  (DIR _FAR *__dir);
  131. int                   _RTLENTRY _EXPFUNC closedir (DIR _FAR *__dir);
  132. void                  _RTLENTRY _EXPFUNC rewinddir(DIR _FAR *__dir);
  133.  
  134. #ifdef __cplusplus
  135. }
  136. #endif
  137.  
  138.  
  139. #if !defined(RC_INVOKED)
  140.  
  141. /* restore default packing */
  142. #pragma pack(pop)
  143.  
  144. #if defined(__STDC__)
  145. #pragma warn .nak
  146. #endif
  147.  
  148. #endif  /* !RC_INVOKED */
  149.  
  150.  
  151. #endif  /* __DIRENT_H */
  152.  
  153.