2 * <stdio.h> wrapper functions.
5 * Jonathan Pryor (jonpryor@vt.edu)
7 * Copyright (C) 2004-2005 Jonathan Pryor
18 #ifndef PLATFORM_WIN32
20 Mono_Posix_Syscall_L_ctermid (void)
26 Mono_Posix_Syscall_L_cuserid (void)
30 #endif /* ndef PLATFORM_WIN32 */
33 Mono_Posix_Stdlib_fread (void *ptr, mph_size_t size, mph_size_t nmemb, FILE *stream)
35 mph_return_if_size_t_overflow (size);
36 mph_return_if_size_t_overflow (nmemb);
38 return fread (ptr, (size_t) size, (size_t) nmemb, stream);
42 Mono_Posix_Stdlib_fwrite (const void *ptr, mph_size_t size, mph_size_t nmemb, FILE *stream)
44 mph_return_if_size_t_overflow (size);
45 mph_return_if_size_t_overflow (nmemb);
47 return fwrite (ptr, (size_t) size, (size_t) nmemb, stream);
52 Mono_Posix_Stdlib_snprintf (char *s, mph_size_t n, char *format, ...)
56 mph_return_if_size_t_overflow (n);
58 va_start (ap, format);
59 r = vsnprintf (s, (size_t) n, format, ap);
64 #endif /* def HAVE_SNPRINTF */
67 Mono_Posix_Stdlib__IOFBF (void)
73 Mono_Posix_Stdlib__IOLBF (void)
79 Mono_Posix_Stdlib__IONBF (void)
85 Mono_Posix_Stdlib_BUFSIZ (void)
91 Mono_Posix_Stdlib_EOF (void)
97 Mono_Posix_Stdlib_FOPEN_MAX (void)
103 Mono_Posix_Stdlib_FILENAME_MAX (void)
109 Mono_Posix_Stdlib_L_tmpnam (void)
115 Mono_Posix_Stdlib_stdin (void)
121 Mono_Posix_Stdlib_stdout (void)
127 Mono_Posix_Stdlib_stderr (void)
133 Mono_Posix_Stdlib_TMP_MAX (void)
139 Mono_Posix_Stdlib_setvbuf (FILE *stream, char *buf, int mode, mph_size_t size)
141 mph_return_if_size_t_overflow (size);
142 return setvbuf (stream, buf, mode, (size_t) size);
146 Mono_Posix_Stdlib_fseek (FILE* stream, gint64 offset, int origin)
148 mph_return_if_long_overflow (offset);
150 return fseek (stream, offset, origin);
154 Mono_Posix_Stdlib_ftell (FILE* stream)
156 return ftell (stream);
160 Mono_Posix_Stdlib_CreateFilePosition (void)
162 fpos_t* pos = malloc (sizeof(fpos_t));
167 Mono_Posix_Stdlib_fgetpos (FILE* stream, fpos_t *pos)
169 return fgetpos (stream, pos);
173 Mono_Posix_Stdlib_fsetpos (FILE* stream, fpos_t *pos)
175 return fsetpos (stream, pos);