*/\r
#ifndef __STDIO_H\r
#define __STDIO_H
-
+\r
+#include <stdlib.h>\r
+#include <stdarg.h>\r
+\r
+// === Types ===
typedef struct sFILE FILE;
\r
+// === CONSTANTS ===\r
+#define EOF (-1)\r
+\r
+// --- Standard IO ---\r
extern int printf(const char *format, ...);\r
-extern void sprintfv(char *buf, char *format, va_list args);\r
-extern int ssprintfv(char *format, va_list args);\r
-extern int sprintf(char *buf, char *format, ...);
+extern int vsprintf(char *buf, const char *format, va_list args);\r
+extern int sprintf(char *buf, const char *format, ...);\r
\r
-extern FILE *fopen(char *file, char *mode);\r
-extern FILE *freopen(FILE *fp, char *file, char *mode);
+extern FILE *fopen(const char *file, const char *mode);\r
+extern FILE *freopen(const char *file, const char *mode, FILE *fp);\r
+extern FILE *fdopen(int fd, const char *modes);
extern void fclose(FILE *fp);\r
extern void fflush(FILE *fp);\r
+extern long int ftell(FILE *fp);\r
+extern int fseek(FILE *fp, long int amt, int whence);\r
+\r
+extern size_t fread(void *buf, size_t size, size_t n, FILE *fp);\r
+extern size_t fwrite(void *buf, size_t size, size_t n, FILE *fp);\r
+extern int fgetc(FILE *fp);\r
+extern int fputc(int ch, FILE *fp);\r
+\r
+extern int fprintf(FILE *fp, const char *format, ...);\r
+extern int vfprintf(FILE *fp, const char *format, va_list args);\r
\r
-extern int fprintf(FILE *fp, const char *format, ...);
+extern FILE *stdin;\r
+extern FILE *stdout;\r
+extern FILE *stderr;\r
#endif\r