1 /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
3 #ifndef __dj_include_libc_file_h__
4 #define __dj_include_libc_file_h__
6 #include <msvcrt/stdio.h>
7 #include <msvcrt/fcntl.h>
14 #ifndef __dj_ENFORCE_ANSI_FREESTANDING
15 #ifndef __STRICT_ANSI__
19 #define _IORMONCL 004000 /* remove on close, for temp files */
21 /* if _flag & _IORMONCL, ._name_to_remove needs freeing */
24 #define _IOUNGETC 010000 /* there is an ungetc'ed character in the buffer */
27 // might need check for IO_APPEND aswell
28 #define OPEN4WRITING(f) ((((f)->_flag & _IOWRT) == _IOWRT))
29 #define OPEN4READING(f) ((((f)->_flag & _IOREAD) == _IOREAD))
31 // might need check for IO_APPEND aswell
32 #define WRITE_STREAM(f) ((((f)->_flag & _IOWRT) == _IOWRT))
33 #define READ_STREAM(f) ((((f)->_flag & _IOREAD) == _IOREAD))
35 char __validfp(FILE*);
36 int __set_errno(int err);
37 int __set_doserrno(int error);
38 void* filehnd(int fn);
39 char __is_text_file(FILE*);
40 int __fileno_alloc(void* hFile, int mode);
41 int _doprnt(const char* fmt, va_list args, FILE *);
42 int _doscan(FILE* iop, const char* fmt, va_list argp);
43 int __fileno_dup2(int handle1, int handle2);
44 int __fileno_getmode(int _fd);
45 int __fileno_setmode(int _fd, int _newmode);
46 int __fileno_close(int _fd);
47 void sigabort_handler(int sig);
51 void UnixTimeToFileTime(time_t unix_time, FILETIME* filetime, DWORD remainder);
52 time_t FileTimeToUnixTime(const FILETIME* filetime, DWORD *remainder);
54 #endif /* !_POSIX_SOURCE */
55 #endif /* !__STRICT_ANSI__ */
56 #endif /* !__dj_ENFORCE_ANSI_FREESTANDING */
58 #ifndef __dj_ENFORCE_FUNCTION_CALLS
59 #endif /* !__dj_ENFORCE_FUNCTION_CALLS */
61 #define __FILE_REC_MAX 20
62 typedef struct __file_rec
64 struct __file_rec* next;
66 FILE* files[__FILE_REC_MAX];
69 extern __file_rec* __file_rec_list;
76 #endif /* __dj_include_libc_file_h__ */