Usermode - POSIX and C conformance changes
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / include_exp / stdio.h
index be4f20a..fed2e97 100644 (file)
@@ -5,8 +5,9 @@
 #ifndef __STDIO_H
 #define __STDIO_H
 
-#include <stdlib.h>
+#include <sys/types.h>
 #include <stdarg.h>
+#include <stddef.h>    // size_t
 
 /* === Types === */
 typedef struct sFILE   FILE;
@@ -15,12 +16,43 @@ typedef struct sFILE        FILE;
 #define EOF    (-1)
 #define BUFSIZ 1024
 
+#ifndef SEEK_CUR
+#define SEEK_CUR       0
+#define SEEK_SET       1
+#define SEEK_END       (-1)
+#endif
+
+#define _IOFBF 2
+#define _IOLBF 1
+#define _IONBF 0
+
+#ifdef ARCHDIR_is_native
+#define printf acess_printf
+#define vsprintf       acess_vsprintf
+#define vsnprintf      acess_vsnprintf
+#define sprintf        acess_sprintf
+#define snprintf       acess_snprintf
+#define vprintf        acess_vprintf
+#define vfprintf       acess_vfprintf
+#define fopen  acess_fopen
+#define fdopen acess_fdopen
+#define freopen        acess_freopen
+#define fclose acess_fclose
+
+#define putchar        acess_putchar
+#define getchar        acess_getchar
+
+#define stdin  acess_stdin
+#define stdout acess_stdout
+#endif
+
 /* --- Standard IO --- */
 extern int     printf(const char *format, ...);
 extern int     vsnprintf(char *buf, size_t __maxlen, const char *format, va_list args);
 extern int     vsprintf(char *buf, const char *format, va_list args);
 extern int     sprintf(char *buf, const char *format, ...);
 extern int     snprintf(char *buf, size_t maxlen, const char *format, ...);
+extern void    perror(const char *s);
 
 extern FILE    *fopen(const char *file, const char *mode);
 extern FILE    *freopen(const char *file, const char *mode, FILE *fp);
@@ -29,17 +61,32 @@ extern int  fclose(FILE *fp);
 extern void    fflush(FILE *fp);
 extern off_t   ftell(FILE *fp);
 extern int     fseek(FILE *fp, long int amt, int whence);
+extern void    clearerr(FILE *stream);
+extern int     feof(FILE *stream);
+extern int     ferror(FILE *stream);
+extern int     fileno(FILE *stream);
 
 extern size_t  fread(void *buf, size_t size, size_t n, FILE *fp);
-extern size_t  fwrite(void *buf, size_t size, size_t n, FILE *fp);
+extern size_t  fwrite(const void *buf, size_t size, size_t n, FILE *fp);
 extern int     fgetc(FILE *fp);
+#define getc(fp)       fgetc(fp)
+extern char    *fgets(char *s, int size, FILE *fp);
 extern int     fputc(int ch, FILE *fp);
+extern int     fputs(const char *s, FILE *fp);
 extern int     getchar(void);
 extern int     putchar(int ch);
 
 extern int     fprintf(FILE *fp, const char *format, ...);
 extern int     vfprintf(FILE *fp, const char *format, va_list args);
 
+// scanf
+extern int     scanf(const char *format, ...);
+extern int     fscanf(FILE *stream, const char *format, ...);
+extern int     sscanf(const char *str, const char *format, ...);
+extern int     vscanf(const char *format, va_list ap);
+extern int     vsscanf(const char *str, const char *format, va_list ap);
+extern int     vfscanf(FILE *stream, const char *format, va_list ap);
+
 extern FILE    *stdin;
 extern FILE    *stdout;
 extern FILE    *stderr;

UCC git Repository :: git.ucc.asn.au