8
8
9
9
#include "file_util.h"
10
10
#include "mcl_core/mcl_assert.h"
11
+ #include <stdio.h>
12
+
13
+ #if HAVE_FILE_SYSTEM_
11
14
#include <sys/stat.h>
12
15
#include <sys/types.h>
13
- #include <stdio.h>
16
+
17
+ static mcl_error_t _file_util_fstat (void * file_descriptor , struct stat * file_attributes );
18
+ #else
19
+ static const char mcl_no_file_system_message [] = "MCL file utility cannot be used." ;
20
+ #endif
14
21
15
22
#if !defined(S_ISREG ) && defined(S_IFMT ) && defined(S_IFREG )
16
23
#define S_ISREG (m ) (((m) & S_IFMT) == S_IFREG)
17
24
#endif
18
25
19
- static mcl_error_t _file_util_fstat (void * file_descriptor , struct stat * file_attributes );
20
-
21
26
mcl_error_t mcl_file_util_fopen (const char * file_name , const char * mode , void * * file_descriptor )
22
27
{
28
+ #if HAVE_FILE_SYSTEM_
23
29
mcl_error_t return_code ;
24
30
25
31
MCL_DEBUG_ENTRY ("const char *file_name = <%s>, const char *mode = <%s>, void **file_descriptor = <%p>" , file_name , mode , file_descriptor );
@@ -28,12 +34,16 @@ mcl_error_t mcl_file_util_fopen(const char *file_name, const char *mode, void **
28
34
29
35
MCL_DEBUG_LEAVE ("retVal = <%d>" , return_code );
30
36
return return_code ;
37
+ #else
38
+ MCL_ERROR_STRING (mcl_no_file_system_message );
39
+ return MCL_FAIL ;
40
+ #endif
31
41
}
32
42
33
43
mcl_error_t mcl_file_util_fopen_without_log (const char * file_name , const char * mode , void * * file_descriptor )
34
44
{
45
+ #if HAVE_FILE_SYSTEM_
35
46
mcl_error_t return_code = MCL_OK ;
36
-
37
47
FILE * file ;
38
48
39
49
#if defined(WIN32 ) || defined(WIN64 )
@@ -47,11 +57,15 @@ mcl_error_t mcl_file_util_fopen_without_log(const char *file_name, const char *m
47
57
return_code = MCL_FAIL ;
48
58
}
49
59
50
- return return_code ;
60
+ return return_code ;
61
+ #else
62
+ return MCL_FAIL ;
63
+ #endif
51
64
}
52
65
53
66
mcl_error_t mcl_file_util_fclose (void * file_descriptor )
54
67
{
68
+ #if HAVE_FILE_SYSTEM_
55
69
mcl_error_t return_code ;
56
70
57
71
MCL_DEBUG_ENTRY ("void *file_descriptor = <%p>" , file_descriptor );
@@ -60,10 +74,15 @@ mcl_error_t mcl_file_util_fclose(void *file_descriptor)
60
74
61
75
MCL_DEBUG_LEAVE ("retVal = <%d>" , return_code );
62
76
return return_code ;
77
+ #else
78
+ MCL_ERROR_STRING (mcl_no_file_system_message );
79
+ return MCL_FAIL ;
80
+ #endif
63
81
}
64
82
65
83
mcl_error_t mcl_file_util_fclose_without_log (void * file_descriptor )
66
84
{
85
+ #if HAVE_FILE_SYSTEM_
67
86
mcl_error_t return_code = MCL_OK ;
68
87
69
88
if (MCL_NULL != file_descriptor )
@@ -76,10 +95,14 @@ mcl_error_t mcl_file_util_fclose_without_log(void *file_descriptor)
76
95
}
77
96
78
97
return return_code ;
98
+ #else
99
+ return MCL_FAIL ;
100
+ #endif
79
101
}
80
102
81
103
mcl_error_t mcl_file_util_fwrite (const void * data , mcl_size_t size , mcl_size_t count , void * file_descriptor )
82
104
{
105
+ #if HAVE_FILE_SYSTEM_
83
106
mcl_error_t return_code ;
84
107
85
108
MCL_DEBUG_ENTRY ("const void *data = <%p>, mcl_size_t size = <%u>, mcl_size_t count = <%u>, void *file_descriptor = <%p>" , data , size , count , file_descriptor );
@@ -88,10 +111,15 @@ mcl_error_t mcl_file_util_fwrite(const void *data, mcl_size_t size, mcl_size_t c
88
111
89
112
MCL_DEBUG_LEAVE ("retVal = <%d>" , return_code );
90
113
return return_code ;
114
+ #else
115
+ MCL_ERROR_STRING (mcl_no_file_system_message );
116
+ return MCL_FAIL ;
117
+ #endif
91
118
}
92
119
93
120
mcl_error_t mcl_file_util_fwrite_without_log (const void * data , mcl_size_t size , mcl_size_t count , void * file_descriptor )
94
121
{
122
+ #if HAVE_FILE_SYSTEM_
95
123
mcl_error_t return_code = MCL_FAIL ;
96
124
97
125
mcl_size_t actual_count = fwrite (data , size , count , (FILE * )file_descriptor );
@@ -105,20 +133,28 @@ mcl_error_t mcl_file_util_fwrite_without_log(const void *data, mcl_size_t size,
105
133
}
106
134
107
135
return return_code ;
136
+ #else
137
+ return MCL_FAIL ;
138
+ #endif
108
139
}
109
140
110
141
void mcl_file_util_fread (void * data , mcl_size_t size , mcl_size_t count , void * file_descriptor , mcl_size_t * actual_count )
111
142
{
143
+ #if HAVE_FILE_SYSTEM_
112
144
MCL_DEBUG_ENTRY ("void *data = <%p>, mcl_size_t size = <%u>, mcl_size_t count = <%u>, void *file_descriptor = <%p>, mcl_size_t *actual_count = <%p>" , data , size , count ,
113
145
file_descriptor , actual_count );
114
146
115
147
* actual_count = fread (data , size , count , (FILE * )file_descriptor );
116
148
117
149
MCL_DEBUG_LEAVE ("retVal = void" );
150
+ #else
151
+ MCL_ERROR_STRING (mcl_no_file_system_message );
152
+ #endif
118
153
}
119
154
120
155
mcl_error_t mcl_file_util_fputs (const char * data , void * file_descriptor )
121
156
{
157
+ #if HAVE_FILE_SYSTEM_
122
158
mcl_error_t return_code = MCL_FAIL ;
123
159
mcl_error_t result ;
124
160
@@ -136,10 +172,15 @@ mcl_error_t mcl_file_util_fputs(const char *data, void *file_descriptor)
136
172
137
173
MCL_DEBUG_LEAVE ("retVal = <%d>" , return_code );
138
174
return return_code ;
175
+ #else
176
+ MCL_ERROR_STRING (mcl_no_file_system_message );
177
+ return MCL_FAIL ;
178
+ #endif
139
179
}
140
180
141
181
mcl_error_t mcl_file_util_fgets (char * data , mcl_size_t data_size , void * file_descriptor )
142
182
{
183
+ #if HAVE_FILE_SYSTEM_
143
184
mcl_error_t return_code = MCL_FAIL ;
144
185
char * output ;
145
186
@@ -157,10 +198,15 @@ mcl_error_t mcl_file_util_fgets(char *data, mcl_size_t data_size, void *file_des
157
198
158
199
MCL_DEBUG_LEAVE ("retVal = <%d>" , return_code );
159
200
return return_code ;
201
+ #else
202
+ MCL_ERROR_STRING (mcl_no_file_system_message );
203
+ return MCL_FAIL ;
204
+ #endif
160
205
}
161
206
162
207
mcl_error_t mcl_file_util_fflush (void * file_descriptor )
163
208
{
209
+ #if HAVE_FILE_SYSTEM_
164
210
mcl_error_t return_code ;
165
211
166
212
MCL_DEBUG_ENTRY ("void *file_descriptor = <%p>" , file_descriptor );
@@ -169,18 +215,19 @@ mcl_error_t mcl_file_util_fflush(void *file_descriptor)
169
215
170
216
MCL_DEBUG_LEAVE ("retVal = <%d>" , return_code );
171
217
return return_code ;
218
+ #else
219
+ MCL_ERROR_STRING (mcl_no_file_system_message );
220
+ return MCL_FAIL ;
221
+ #endif
172
222
}
173
223
174
224
mcl_error_t mcl_file_util_fflush_without_log (void * file_descriptor )
175
225
{
226
+ #if HAVE_FILE_SYSTEM_
176
227
mcl_error_t return_code = MCL_FAIL ;
177
228
int result ;
178
229
179
- #if defined(WIN32 ) || defined(WIN64 )
180
230
result = fflush ((FILE * )file_descriptor );
181
- #else
182
- result = fflush ((FILE * )file_descriptor );
183
- #endif
184
231
185
232
if (0 == result )
186
233
{
@@ -192,10 +239,15 @@ mcl_error_t mcl_file_util_fflush_without_log(void *file_descriptor)
192
239
}
193
240
194
241
return return_code ;
242
+ #else
243
+ MCL_ERROR_STRING (mcl_no_file_system_message );
244
+ return MCL_FAIL ;
245
+ #endif
195
246
}
196
247
197
248
void mcl_file_util_rewind (void * file_descriptor )
198
249
{
250
+ #if HAVE_FILE_SYSTEM_
199
251
MCL_DEBUG_ENTRY ("void *file_descriptor = <%p>" , file_descriptor );
200
252
201
253
if (MCL_NULL != file_descriptor )
@@ -204,10 +256,14 @@ void mcl_file_util_rewind(void *file_descriptor)
204
256
}
205
257
206
258
MCL_DEBUG_LEAVE ("retVal = void" );
259
+ #else
260
+ MCL_ERROR_STRING (mcl_no_file_system_message );
261
+ #endif
207
262
}
208
263
209
264
mcl_bool_t mcl_file_util_check_if_regular_file (void * file_descriptor )
210
265
{
266
+ #if HAVE_FILE_SYSTEM_
211
267
mcl_bool_t is_regular_file = MCL_FALSE ;
212
268
struct stat file_attributes ;
213
269
@@ -222,10 +278,15 @@ mcl_bool_t mcl_file_util_check_if_regular_file(void *file_descriptor)
222
278
223
279
MCL_DEBUG_LEAVE ("retVal = <%d>" , is_regular_file );
224
280
return is_regular_file ;
281
+ #else
282
+ MCL_ERROR_STRING (mcl_no_file_system_message );
283
+ return MCL_FALSE ;
284
+ #endif
225
285
}
226
286
227
287
mcl_size_t mcl_file_util_get_file_size (void * file_descriptor )
228
288
{
289
+ #if HAVE_FILE_SYSTEM_
229
290
struct stat file_attributes ;
230
291
mcl_size_t file_size = 0 ;
231
292
@@ -238,10 +299,15 @@ mcl_size_t mcl_file_util_get_file_size(void *file_descriptor)
238
299
239
300
MCL_DEBUG_LEAVE ("retVal = <%u>" , file_size );
240
301
return file_size ;
302
+ #else
303
+ MCL_ERROR_STRING (mcl_no_file_system_message );
304
+ return 0 ;
305
+ #endif
241
306
}
242
307
243
308
mcl_time_t mcl_file_util_get_time_of_last_status_change (void * file_descriptor )
244
309
{
310
+ #if HAVE_FILE_SYSTEM_
245
311
struct stat file_attributes ;
246
312
mcl_time_t time = 0 ;
247
313
@@ -254,8 +320,13 @@ mcl_time_t mcl_file_util_get_time_of_last_status_change(void *file_descriptor)
254
320
255
321
MCL_DEBUG_LEAVE ("retVal = <%u>" , time );
256
322
return time ;
323
+ #else
324
+ MCL_ERROR_STRING (mcl_no_file_system_message );
325
+ return 0 ;
326
+ #endif
257
327
}
258
328
329
+ #if HAVE_FILE_SYSTEM_
259
330
static mcl_error_t _file_util_fstat (void * file_descriptor , struct stat * file_attributes )
260
331
{
261
332
mcl_error_t return_code = MCL_FAIL ;
@@ -281,3 +352,4 @@ static mcl_error_t _file_util_fstat(void *file_descriptor, struct stat *file_att
281
352
MCL_DEBUG_LEAVE ("retVal = <%d>" , return_code );
282
353
return return_code ;
283
354
}
355
+ #endif
0 commit comments