STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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 
15 
16 
17 #pragma warning(push)
18 #pragma warning(disable:4820) /* padding added after data member */
19 
20 
21 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
22 //
23 // Types
24 //
25 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
26 #ifdef _USE_32BIT_TIME_T
27  #define _wfinddata_t _wfinddata32_t
28  #define _wfinddatai64_t _wfinddata32i64_t
29 #else
30  #define _wfinddata_t _wfinddata64i32_t
31  #define _wfinddatai64_t _wfinddata64_t
32 #endif
33 
34 typedef unsigned long _fsize_t;
35 
37 {
38  unsigned attrib;
39  __time32_t time_create; // -1 for FAT file systems
40  __time32_t time_access; // -1 for FAT file systems
43  wchar_t name[260];
44 };
45 
47 {
48  unsigned attrib;
49  __time32_t time_create; // -1 for FAT file systems
50  __time32_t time_access; // -1 for FAT file systems
52  __int64 size;
53  wchar_t name[260];
54 };
55 
57 {
58  unsigned attrib;
59  __time64_t time_create; // -1 for FAT file systems
60  __time64_t time_access; // -1 for FAT file systems
63  wchar_t name[260];
64 };
65 
67 {
68  unsigned attrib;
69  __time64_t time_create; // -1 for FAT file systems
70  __time64_t time_access; // -1 for FAT file systems
72  __int64 size;
73  wchar_t name[260];
74 };
75 
76 
77 
78 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
79 //
80 // Functions
81 //
82 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
83 #ifdef _USE_32BIT_TIME_T
84  #define _wfindfirst _wfindfirst32
85  #define _wfindnext _wfindnext32
86  #define _wfindfirsti64 _wfindfirst32i64
87  #define _wfindnexti64 _wfindnext32i64
88 #else
89  #define _wfindfirst _wfindfirst64i32
90  #define _wfindnext _wfindnext64i32
91  #define _wfindfirsti64 _wfindfirst64
92  #define _wfindnexti64 _wfindnext64
93 #endif
94 
96 _ACRTIMP int __cdecl _waccess(
97  _In_z_ wchar_t const* _FileName,
98  _In_ int _AccessMode
99  );
100 
102 _ACRTIMP errno_t __cdecl _waccess_s(
103  _In_z_ wchar_t const* _FileName,
104  _In_ int _AccessMode
105  );
106 
108 _ACRTIMP int __cdecl _wchmod(
109  _In_z_ wchar_t const* _FileName,
110  _In_ int _Mode
111  );
112 
114 _ACRTIMP int __cdecl _wcreat(
115  _In_z_ wchar_t const* _FileName,
117  );
118 
119 _Success_(return != -1)
121 _ACRTIMP intptr_t __cdecl _wfindfirst32(
122  _In_z_ wchar_t const* _FileName,
124  );
125 
126 _Success_(return != -1)
128 _ACRTIMP int __cdecl _wfindnext32(
129  _In_ intptr_t _FindHandle,
130  _Out_ struct _wfinddata32_t* _FindData
131  );
132 
133 _ACRTIMP int __cdecl _wunlink(
134  _In_z_ wchar_t const* _FileName
135  );
136 
138 _ACRTIMP int __cdecl _wrename(
139  _In_z_ wchar_t const* _OldFileName,
140  _In_z_ wchar_t const* _NewFileName
141  );
142 
143 _ACRTIMP errno_t __cdecl _wmktemp_s(
144  _Inout_updates_z_(_SizeInWords) wchar_t* _TemplateName,
145  _In_ size_t _SizeInWords
146  );
147 
150  wchar_t, _TemplateName
151  )
152 
153 _Success_(return != 0)
156  _Inout_z_, wchar_t, _TemplateName
157  )
158 
159 _Success_(return != -1)
161 _ACRTIMP intptr_t __cdecl _wfindfirst32i64(
162  _In_z_ wchar_t const* _FileName,
163  _Out_ struct _wfinddata32i64_t* _FindData
164  );
165 
166 _Success_(return != -1)
168 _ACRTIMP intptr_t __cdecl _wfindfirst64i32(
169  _In_z_ wchar_t const* _FileName,
170  _Out_ struct _wfinddata64i32_t* _FindData
171  );
172 
173 _Success_(return != -1)
175 _ACRTIMP intptr_t __cdecl _wfindfirst64(
176  _In_z_ wchar_t const* _FileName,
177  _Out_ struct _wfinddata64_t* _FindData
178  );
179 
180 _Success_(return != -1)
182 _ACRTIMP int __cdecl _wfindnext32i64(
183  _In_ intptr_t _FindHandle,
184  _Out_ struct _wfinddata32i64_t* _FindData
185  );
186 
187 _Success_(return != -1)
189 _ACRTIMP int __cdecl _wfindnext64i32(
190  _In_ intptr_t _FindHandle,
191  _Out_ struct _wfinddata64i32_t* _FindData
192  );
193 
194 _Success_(return != -1)
196 _ACRTIMP int __cdecl _wfindnext64(
197  _In_ intptr_t _FindHandle,
198  _Out_ struct _wfinddata64_t* _FindData
199  );
200 
202 _ACRTIMP errno_t __cdecl _wsopen_s(
203  _Out_ int* _FileHandle,
204  _In_z_ wchar_t const* _FileName,
205  _In_ int _OpenFlag,
206  _In_ int _ShareFlag,
207  _In_ int _PermissionFlag
208  );
209 
210 _ACRTIMP errno_t __cdecl _wsopen_dispatch(
211  _In_z_ wchar_t const* _FileName,
212  _In_ int _OFlag,
213  _In_ int _ShFlag,
214  _In_ int _PMode,
215  _Out_ int* _PFileHandle,
216  _In_ int _BSecure
217  );
218 
219 
220 
221 #if defined __cplusplus
222 
223  // These functions do not validate pmode; use _wsopen_s instead.
225  inline int __CRTDECL _wopen(
226  _In_z_ wchar_t const* _FileName,
227  _In_ int _OFlag,
228  _In_ int _PMode = 0
229  )
230  {
231  int _FileHandle;
232  // Last parameter passed as 0 because we don't want to validate pmode from _open
233  errno_t const _Result = _wsopen_dispatch(_FileName, _OFlag, _SH_DENYNO, _PMode, &_FileHandle, 0);
234  return _Result ? -1 : _FileHandle;
235  }
236 
238  inline int __CRTDECL _wsopen(
239  _In_z_ wchar_t const* _FileName,
240  _In_ int _OFlag,
241  _In_ int _ShFlag,
242  _In_ int _PMode = 0
243  )
244  {
245  int _FileHandle;
246  // Last parameter passed as 0 because we don't want to validate pmode from _sopen
247  errno_t const _Result = _wsopen_dispatch(_FileName, _OFlag, _ShFlag, _PMode, &_FileHandle, 0);
248  return _Result ? -1 : _FileHandle;
249  }
250 
251 
252 #else
253 
255  _ACRTIMP int __cdecl _wopen(
256  _In_z_ wchar_t const* _FileName,
257  _In_ int _OpenFlag,
258  ...);
259 
261  _ACRTIMP int __cdecl _wsopen(
262  _In_z_ wchar_t const* _FileName,
263  _In_ int _OpenFlag,
264  _In_ int _ShareFlag,
265  ...);
266 
267 #endif
268 
269 
270 #pragma warning(pop)
271 
272 
#define _Out_
Definition: sal.h:342
return
Definition: corecrt_memcpy_s.h:60
_Out_ struct _wfinddata32_t * _FindData
Definition: corecrt_wio.h:123
__int64 size
Definition: corecrt_wio.h:52
__time64_t time_create
Definition: corecrt_wio.h:59
_fsize_t size
Definition: corecrt_wio.h:62
unsigned attrib
Definition: corecrt_wio.h:48
_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)
Definition: corecrt_wio.h:46
_Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) _ACRTIMP int __cdecl _wcreat(_In_z_ wchar_t const *_FileName
_ACRTIMP
Definition: corecrt_wio.h:155
__time32_t time_create
Definition: corecrt_wio.h:39
int errno_t
Definition: corecrt.h:476
#define _Check_return_wat_
Definition: corecrt.h:102
__int64 size
Definition: corecrt_wio.h:72
_Success_(return!=-1) _Check_return_ _ACRTIMP intptr_t __cdecl _wfindfirst32(_In_z_ wchar_t const *_FileName
unsigned long _fsize_t
Definition: corecrt_wio.h:34
#define _CRT_BEGIN_C_HEADER
Definition: vcruntime.h:73
_Check_return_ _ACRTIMP int __cdecl _waccess(_In_z_ wchar_t const *_FileName, _In_ int _AccessMode)
#define _Inout_updates_z_(size)
Definition: sal.h:386
wchar_t name[260]
Definition: corecrt_wio.h:63
Definition: corecrt_wio.h:36
__RETURN_POLICY_DST
Definition: corecrt_wio.h:155
_wmktemp
Definition: corecrt_wio.h:155
#define __CRTDECL
Definition: vcruntime.h:156
_fsize_t size
Definition: corecrt_wio.h:42
#define _Check_return_
Definition: sal.h:554
#define _In_z_
Definition: sal.h:310
#define _In_
Definition: sal.h:305
_Check_return_wat_ _ACRTIMP errno_t __cdecl _waccess_s(_In_z_ wchar_t const *_FileName, _In_ int _AccessMode)
__time64_t time_access
Definition: corecrt_wio.h:70
long __time32_t
Definition: corecrt.h:479
Definition: corecrt_wio.h:56
__time64_t time_write
Definition: corecrt_wio.h:61
unsigned attrib
Definition: corecrt_wio.h:58
_Check_return_ _In_z_ wchar_t const * _Mode
Definition: corecrt_wstdio.h:133
unsigned attrib
Definition: corecrt_wio.h:38
wchar_t name[260]
Definition: corecrt_wio.h:43
_Check_return_ _In_ int _PermissionMode
Definition: corecrt_wio.h:117
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wmktemp_s, wchar_t, _TemplateName) _Success_(return!=0) __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(wchar_t *
_Inout_z_
Definition: corecrt_wio.h:155
_CRT_BEGIN_C_HEADER _In_ int _SizeInWords
Definition: corecrt_wdirect.h:25
_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)
int intptr_t
Definition: vcruntime.h:200
wchar_t name[260]
Definition: corecrt_wio.h:53
_ACRTIMP errno_t __cdecl _wmktemp_s(_Inout_updates_z_(_SizeInWords) wchar_t *_TemplateName, _In_ size_t _SizeInWords)
_In_opt_z_ wchar_t const _In_opt_z_ wchar_t const * _FileName
Definition: corecrt.h:253
#define _CRT_END_C_HEADER
Definition: vcruntime.h:76
__time32_t time_access
Definition: corecrt_wio.h:50
__time32_t time_access
Definition: corecrt_wio.h:40
__int64 __time64_t
Definition: corecrt.h:480
__time64_t time_write
Definition: corecrt_wio.h:71
#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst)
Definition: corecrt.h:709
_Check_return_ _ACRTIMP int __cdecl _wchmod(_In_z_ wchar_t const *_FileName, _In_ int _Mode)
Definition: corecrt_wio.h:66
_Check_return_ _In_ int _Check_return_ _In_ int _In_ int _ShareFlag
Definition: corecrt_wio.h:263
__time32_t time_write
Definition: corecrt_wio.h:51
__time32_t time_write
Definition: corecrt_wio.h:41
unsigned attrib
Definition: corecrt_wio.h:68
#define _SH_DENYNO
Definition: corecrt_share.h:16
_ACRTIMP int __cdecl _wunlink(_In_z_ wchar_t const *_FileName)
_Result
Definition: corecrt_wconio.h:362
wchar_t name[260]
Definition: corecrt_wio.h:73
__time64_t time_create
Definition: corecrt_wio.h:69
__time64_t time_access
Definition: corecrt_wio.h:60
__time32_t time_create
Definition: corecrt_wio.h:49
_Check_return_ _ACRTIMP int __cdecl _wrename(_In_z_ wchar_t const *_OldFileName, _In_z_ wchar_t const *_NewFileName)
_Check_return_ _In_ int _OpenFlag
Definition: corecrt_wio.h:257