/* * DIRENT.H (formerly DIRLIB.H) * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-runtime package. * No warranty is given; refer to the file DISCLAIMER within the package. * */ #ifndef _DIRENT_H_ #define _DIRENT_H_ /* All the headers include this file. */ #include <crtdefs.h> #include <io.h> #ifndef RC_INVOKED #pragma pack(push,_CRT_PACKING) #ifdef __cplusplus extern "C" { #endif struct dirent { long d_ino; /* Always zero. */ unsigned short d_reclen; /* Always zero. */ unsigned short d_namlen; /* Length of name in d_name. */ char d_name[260]; /* [FILENAME_MAX] */ /* File name. */ }; /* * This is an internal data structure. Good programmers will not use it * except as an argument to one of the functions below. * dd_stat field is now int (was short in older versions). */ typedef struct { /* disk transfer area for this dir */ struct _finddata_t dd_dta; /* dirent struct to return from dir (NOTE: this makes this thread * safe as long as only one thread uses a particular DIR struct at * a time) */ struct dirent dd_dir; /* _findnext handle */ intptr_t dd_handle; /* * Status of search: * 0 = not started yet (next entry to read is first entry) * -1 = off the end * positive = 0 based index of next entry */ int dd_stat; /* given path for dir with search pattern (struct is extended) */ char dd_name[1]; } DIR; DIR* __cdecl __MINGW_NOTHROW opendir (const char*); struct dirent* __cdecl __MINGW_NOTHROW readdir (DIR*); int __cdecl __MINGW_NOTHROW closedir (DIR*); void __cdecl __MINGW_NOTHROW rewinddir (DIR*); long __cdecl __MINGW_NOTHROW telldir (DIR*); void __cdecl __MINGW_NOTHROW seekdir (DIR*, long); /* wide char versions */ struct _wdirent { long d_ino; /* Always zero. */ unsigned short d_reclen; /* Always zero. */ unsigned short d_namlen; /* Length of name in d_name. */ wchar_t d_name[260]; /* [FILENAME_MAX] */ /* File name. */ }; /* * This is an internal data structure. Good programmers will not use it * except as an argument to one of the functions below. */ typedef struct { /* disk transfer area for this dir */ struct _wfinddata_t dd_dta; /* dirent struct to return from dir (NOTE: this makes this thread * safe as long as only one thread uses a particular DIR struct at * a time) */ struct _wdirent dd_dir; /* _findnext handle */ intptr_t dd_handle; /* * Status of search: * 0 = not started yet (next entry to read is first entry) * -1 = off the end * positive = 0 based index of next entry */ int dd_stat; /* given path for dir with search pattern (struct is extended) */ wchar_t dd_name[1]; } _WDIR; _WDIR* __cdecl __MINGW_NOTHROW _wopendir (const wchar_t*); struct _wdirent* __cdecl __MINGW_NOTHROW _wreaddir (_WDIR*); int __cdecl __MINGW_NOTHROW _wclosedir (_WDIR*); void __cdecl __MINGW_NOTHROW _wrewinddir (_WDIR*); long __cdecl __MINGW_NOTHROW _wtelldir (_WDIR*); void __cdecl __MINGW_NOTHROW _wseekdir (_WDIR*, long); #ifdef __cplusplus } #endif #pragma pack(pop) #endif /* Not RC_INVOKED */ #endif /* Not _DIRENT_H_ */