source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dirent.h

Last change on this file was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 3.1 KB
Line 
1/*
2 * DIRENT.H (formerly DIRLIB.H)
3 * This file has no copyright assigned and is placed in the Public Domain.
4 * This file is part of the mingw-runtime package.
5 * No warranty is given; refer to the file DISCLAIMER within the package.
6 *
7 */
8
9#ifndef _DIRENT_H_
10#define _DIRENT_H_
11
12/* All the headers include this file. */
13#include <crtdefs.h>
14
15#include <io.h>
16
17#ifndef RC_INVOKED
18
19#pragma pack(push,_CRT_PACKING)
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25struct dirent
26{
27 long d_ino; /* Always zero. */
28 unsigned short d_reclen; /* Always zero. */
29 unsigned short d_namlen; /* Length of name in d_name. */
30 char d_name[260]; /* [FILENAME_MAX] */ /* File name. */
31};
32
33/*
34 * This is an internal data structure. Good programmers will not use it
35 * except as an argument to one of the functions below.
36 * dd_stat field is now int (was short in older versions).
37 */
38typedef struct
39{
40 /* disk transfer area for this dir */
41 struct _finddata_t dd_dta;
42
43 /* dirent struct to return from dir (NOTE: this makes this thread
44 * safe as long as only one thread uses a particular DIR struct at
45 * a time) */
46 struct dirent dd_dir;
47
48 /* _findnext handle */
49 intptr_t dd_handle;
50
51 /*
52 * Status of search:
53 * 0 = not started yet (next entry to read is first entry)
54 * -1 = off the end
55 * positive = 0 based index of next entry
56 */
57 int dd_stat;
58
59 /* given path for dir with search pattern (struct is extended) */
60 char dd_name[1];
61} DIR;
62
63DIR* __cdecl __MINGW_NOTHROW opendir (const char*);
64struct dirent* __cdecl __MINGW_NOTHROW readdir (DIR*);
65int __cdecl __MINGW_NOTHROW closedir (DIR*);
66void __cdecl __MINGW_NOTHROW rewinddir (DIR*);
67long __cdecl __MINGW_NOTHROW telldir (DIR*);
68void __cdecl __MINGW_NOTHROW seekdir (DIR*, long);
69
70
71/* wide char versions */
72
73struct _wdirent
74{
75 long d_ino; /* Always zero. */
76 unsigned short d_reclen; /* Always zero. */
77 unsigned short d_namlen; /* Length of name in d_name. */
78 wchar_t d_name[260]; /* [FILENAME_MAX] */ /* File name. */
79};
80
81/*
82 * This is an internal data structure. Good programmers will not use it
83 * except as an argument to one of the functions below.
84 */
85typedef struct
86{
87 /* disk transfer area for this dir */
88 struct _wfinddata_t dd_dta;
89
90 /* dirent struct to return from dir (NOTE: this makes this thread
91 * safe as long as only one thread uses a particular DIR struct at
92 * a time) */
93 struct _wdirent dd_dir;
94
95 /* _findnext handle */
96 intptr_t dd_handle;
97
98 /*
99 * Status of search:
100 * 0 = not started yet (next entry to read is first entry)
101 * -1 = off the end
102 * positive = 0 based index of next entry
103 */
104 int dd_stat;
105
106 /* given path for dir with search pattern (struct is extended) */
107 wchar_t dd_name[1];
108} _WDIR;
109
110_WDIR* __cdecl __MINGW_NOTHROW _wopendir (const wchar_t*);
111struct _wdirent* __cdecl __MINGW_NOTHROW _wreaddir (_WDIR*);
112int __cdecl __MINGW_NOTHROW _wclosedir (_WDIR*);
113void __cdecl __MINGW_NOTHROW _wrewinddir (_WDIR*);
114long __cdecl __MINGW_NOTHROW _wtelldir (_WDIR*);
115void __cdecl __MINGW_NOTHROW _wseekdir (_WDIR*, long);
116
117
118#ifdef __cplusplus
119}
120#endif
121
122#pragma pack(pop)
123
124#endif /* Not RC_INVOKED */
125
126#endif /* Not _DIRENT_H_ */
127
Note: See TracBrowser for help on using the repository browser.