ReactOS 0.4.16-dev-1020-gf135cab
corecrt_wio.h
Go to the documentation of this file.
1//
2// corecrt_wio.h
3//
4// Copyright (c) Microsoft Corporation. All rights reserved.
5//
6// This file declares the wide character (wchar_t) I/O functionality, shared by
7// <io.h> and <wchar.h>.
8//
9#pragma once
10
11#include <corecrt.h>
12#include <corecrt_share.h>
13
14#pragma warning(push)
15#pragma warning(disable: _UCRT_DISABLED_WARNINGS)
17
19
20//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
21//
22// Types
23//
24//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
25#ifdef _USE_32BIT_TIME_T
26 #define _wfinddata_t _wfinddata32_t
27 #define _wfinddatai64_t _wfinddata32i64_t
28#else
29 #define _wfinddata_t _wfinddata64i32_t
30 #define _wfinddatai64_t _wfinddata64_t
31#endif
32
33typedef unsigned long _fsize_t;
34
35struct _wfinddata32_t
36{
37 unsigned attrib;
38 __time32_t time_create; // -1 for FAT file systems
39 __time32_t time_access; // -1 for FAT file systems
42 wchar_t name[260];
43};
44
46{
47 unsigned attrib;
48 __time32_t time_create; // -1 for FAT file systems
49 __time32_t time_access; // -1 for FAT file systems
52 wchar_t name[260];
53};
54
56{
57 unsigned attrib;
58 __time64_t time_create; // -1 for FAT file systems
59 __time64_t time_access; // -1 for FAT file systems
62 wchar_t name[260];
63};
64
66{
67 unsigned attrib;
68 __time64_t time_create; // -1 for FAT file systems
69 __time64_t time_access; // -1 for FAT file systems
72 wchar_t name[260];
73};
74
75
76
77//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
78//
79// Functions
80//
81//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
82#ifdef _USE_32BIT_TIME_T
83 #define _wfindfirst _wfindfirst32
84 #define _wfindnext _wfindnext32
85 #define _wfindfirsti64 _wfindfirst32i64
86 #define _wfindnexti64 _wfindnext32i64
87#else
88 #define _wfindfirst _wfindfirst64i32
89 #define _wfindnext _wfindnext64i32
90 #define _wfindfirsti64 _wfindfirst64
91 #define _wfindnexti64 _wfindnext64
92#endif
93
96 _In_z_ wchar_t const* _FileName,
97 _In_ int _AccessMode
98 );
99
102 _In_z_ wchar_t const* _FileName,
103 _In_ int _AccessMode
104 );
105
108 _In_z_ wchar_t const* _FileName,
109 _In_ int _Mode
110 );
111
114 _In_z_ wchar_t const* _FileName,
116 );
117
118_Success_(return != -1)
121 _In_z_ wchar_t const* _FileName,
123 );
124
125_Success_(return != -1)
128 _In_ intptr_t _FindHandle,
130 );
131
133 _In_z_ wchar_t const* _FileName
134 );
135
138 _In_z_ wchar_t const* _OldFileName,
139 _In_z_ wchar_t const* _NewFileName
140 );
141
143 _Inout_updates_z_(_SizeInWords) wchar_t* _TemplateName,
144 _In_ size_t _SizeInWords
145 );
146
149 wchar_t, _TemplateName
150 )
151
152_Success_(return != 0)
155 _Inout_z_, wchar_t, _TemplateName
156 )
157
158_Success_(return != -1)
161 _In_z_ wchar_t const* _FileName,
163 );
164
165_Success_(return != -1)
168 _In_z_ wchar_t const* _FileName,
170 );
171
172_Success_(return != -1)
175 _In_z_ wchar_t const* _FileName,
177 );
178
179_Success_(return != -1)
182 _In_ intptr_t _FindHandle,
184 );
185
186_Success_(return != -1)
189 _In_ intptr_t _FindHandle,
191 );
192
193_Success_(return != -1)
196 _In_ intptr_t _FindHandle,
198 );
199
202 _Out_ int* _FileHandle,
203 _In_z_ wchar_t const* _FileName,
204 _In_ int _OpenFlag,
205 _In_ int _ShareFlag,
207 );
208
210 _In_z_ wchar_t const* _FileName,
211 _In_ int _OFlag,
212 _In_ int _ShFlag,
213 _In_ int _PMode,
214 _Out_ int* _PFileHandle,
215 _In_ int _BSecure
216 );
217
218
219
220#if defined __cplusplus
221
222 // These functions do not validate pmode; use _wsopen_s instead.
224 inline int __CRTDECL _wopen(
225 _In_z_ wchar_t const* _FileName,
226 _In_ int _OFlag,
227 _In_ int _PMode = 0
228 )
229 {
230 int _FileHandle;
231 // Last parameter passed as 0 because we don't want to validate pmode from _open
232 errno_t const _Result = _wsopen_dispatch(_FileName, _OFlag, _SH_DENYNO, _PMode, &_FileHandle, 0);
233 return _Result ? -1 : _FileHandle;
234 }
235
237 inline int __CRTDECL _wsopen(
238 _In_z_ wchar_t const* _FileName,
239 _In_ int _OFlag,
240 _In_ int _ShFlag,
241 _In_ int _PMode = 0
242 )
243 {
244 int _FileHandle;
245 // Last parameter passed as 0 because we don't want to validate pmode from _sopen
246 errno_t const _Result = _wsopen_dispatch(_FileName, _OFlag, _ShFlag, _PMode, &_FileHandle, 0);
247 return _Result ? -1 : _FileHandle;
248 }
249
250
251#else
252
255 _In_z_ wchar_t const* _FileName,
257 ...);
258
261 _In_z_ wchar_t const* _FileName,
262 _In_ int _OpenFlag,
264 ...);
265
266#endif
267
270#pragma warning(pop) // _UCRT_DISABLED_WARNINGS
#define __cdecl
Definition: accygwin.h:79
#define __int64
Definition: basetyps.h:16
return
Definition: dirsup.c:529
_Out_ int _In_z_ char const _In_ int _In_ int _In_ int _PermissionFlag
_Out_ int * _FileHandle
_ACRTIMP errno_t __cdecl _wmktemp_s(_Inout_updates_z_(_SizeInWords) wchar_t *_TemplateName, _In_ size_t _SizeInWords)
_Out_ struct _wfinddata32_t * _FindData
Definition: corecrt_wio.h:122
_ACRTIMP int __cdecl _wunlink(_In_z_ wchar_t const *_FileName)
unsigned long _fsize_t
Definition: corecrt_wio.h:33
_Check_return_ _ACRTIMP int __cdecl _wrename(_In_z_ wchar_t const *_OldFileName, _In_z_ wchar_t const *_NewFileName)
_Check_return_ _ACRTIMP int __cdecl _waccess(_In_z_ wchar_t const *_FileName, _In_ int _AccessMode)
_ACRTIMP errno_t __cdecl _wsopen_dispatch(_In_z_ wchar_t const *_FileName, _In_ int _OFlag, _In_ int _ShFlag, _In_ int _PMode, _Out_ int *_PFileHandle, _In_ int _BSecure)
_Check_return_ _In_ int _PermissionMode
Definition: corecrt_wio.h:116
_Check_return_wat_ _ACRTIMP errno_t __cdecl _wsopen_s(_Out_ int *_FileHandle, _In_z_ wchar_t const *_FileName, _In_ int _OpenFlag, _In_ int _ShareFlag, _In_ int _PermissionFlag)
_ACRTIMP
Definition: corecrt_wio.h:154
_Inout_z_
Definition: corecrt_wio.h:155
_Check_return_wat_ _ACRTIMP errno_t __cdecl _waccess_s(_In_z_ wchar_t const *_FileName, _In_ int _AccessMode)
_Check_return_ _ACRTIMP int __cdecl _wchmod(_In_z_ wchar_t const *_FileName, _In_ int _Mode)
__RETURN_POLICY_DST
Definition: corecrt_wio.h:154
_Check_return_ _In_ int _OpenFlag
Definition: corecrt_wio.h:256
_Check_return_ _In_ int _Check_return_ _In_ int _In_ int _ShareFlag
Definition: corecrt_wio.h:263
_wmktemp
Definition: corecrt_wio.h:154
#define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(_ReturnType, _FuncName, _DstType, _Dst)
Definition: corecrt.h:176
#define _SH_DENYNO
Definition: share.h:17
_Result
Definition: printf.c:27
intptr_t __cdecl _wfindfirst32i64(wchar_t const *const pattern, _wfinddata32i64_t *const result)
Definition: findfile.cpp:228
int __cdecl _wfindnext64i32(intptr_t const handle, _wfinddata64i32_t *const result)
Definition: findfile.cpp:366
intptr_t __cdecl _wfindfirst64(wchar_t const *const pattern, _wfinddata64_t *const result)
Definition: findfile.cpp:240
intptr_t __cdecl _wfindfirst64i32(wchar_t const *const pattern, _wfinddata64i32_t *const result)
Definition: findfile.cpp:234
int __cdecl _wfindnext32i64(intptr_t const handle, _wfinddata32i64_t *const result)
Definition: findfile.cpp:360
int __cdecl _wfindnext64(intptr_t const handle, _wfinddata64_t *const result)
Definition: findfile.cpp:372
#define _Success_(c)
Definition: no_sal2.h:84
#define _In_z_
Definition: no_sal2.h:164
#define _Check_return_
Definition: no_sal2.h:60
#define _Inout_updates_z_(s)
Definition: no_sal2.h:186
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
unsigned long _fsize_t
Definition: io.h:31
_CRTIMP int __cdecl _wopen(const wchar_t *_Filename, int _OpenFlag,...)
Definition: file.c:2020
_CRTIMP int __cdecl _wsopen(const wchar_t *_Filename, int _OpenFlag, int _ShareFlag,...)
Definition: file.c:1939
_Check_return_ _CRTIMP int __cdecl _wcreat(_In_z_ const wchar_t *_Filename, _In_ int _PermissionMode)
_Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst32(_In_z_ const wchar_t *_Filename, _Out_ struct _wfinddata32_t *_FindData)
_Check_return_ _CRTIMP int __cdecl _wfindnext32(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata32_t *_FindData)
_In_ size_t _SizeInWords
Definition: time.h:309
long __time32_t
Definition: time.h:24
__time32_t time_access
Definition: io.h:111
__time32_t time_write
Definition: io.h:112
unsigned attrib
Definition: io.h:109
__time32_t time_create
Definition: io.h:110
_fsize_t size
Definition: io.h:113
__time32_t time_write
Definition: corecrt_wio.h:50
__time32_t time_create
Definition: corecrt_wio.h:48
__time32_t time_access
Definition: corecrt_wio.h:49
__time64_t time_create
Definition: corecrt_wio.h:68
unsigned attrib
Definition: corecrt_wio.h:67
__int64 size
Definition: corecrt_wio.h:71
__time64_t time_access
Definition: corecrt_wio.h:69
__time64_t time_write
Definition: corecrt_wio.h:70
__time64_t time_access
Definition: corecrt_wio.h:59
__time64_t time_create
Definition: corecrt_wio.h:58
__time64_t time_write
Definition: corecrt_wio.h:60
Definition: name.c:39
int errno_t
Definition: corecrt.h:615
__int64 __time64_t
Definition: corecrt.h:619
#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst)
Definition: corecrt.h:842
#define _UCRT_DISABLE_CLANG_WARNINGS
Definition: corecrt.h:109
#define _UCRT_RESTORE_CLANG_WARNINGS
Definition: corecrt.h:117
#define _Check_return_wat_
Definition: corecrt.h:230
int intptr_t
Definition: vcruntime.h:134
#define _CRT_END_C_HEADER
Definition: vcruntime.h:42
#define _CRT_BEGIN_C_HEADER
Definition: vcruntime.h:40
#define _CRT_INSECURE_DEPRECATE(_Replacement)
Definition: vcruntime.h:99
#define __CRTDECL
Definition: yvals.h:17
#define const
Definition: zconf.h:233