4d812a7b6989de83384b1abb6d2b296889e5fae7
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / include_exp / stdio.h
1 /*
2  * AcessOS LibC
3  * stdlib.h
4  */
5 #ifndef __STDIO_H
6 #define __STDIO_H
7
8 #include <sys/types.h>
9 #include <stdarg.h>
10 #include <stddef.h>     // size_t
11
12 /* === Types === */
13 typedef struct sFILE    FILE;
14
15 /* === CONSTANTS === */
16 #define EOF     (-1)
17 #define BUFSIZ  1024
18
19 #ifndef SEEK_CUR
20 #define SEEK_CUR        0
21 #define SEEK_SET        1
22 #define SEEK_END        (-1)
23 #endif
24
25 #define _IOFBF  2
26 #define _IOLBF  1
27 #define _IONBF  0
28
29 #ifdef ARCHDIR_is_native
30 #define printf  acess_printf
31 #define vsnprintf       acess_vsnprintf
32 #define vsprintf        acess_vsprintf
33 #define vprintf         acess_vprintf
34 #define sprintf acess_sprintf
35 #define snprintf        acess_snprintf
36 #define perror  acess_perror
37
38 #define fopen   acess_fopen
39 #define fdopen  acess_fdopen
40 #define freopen acess_freopen
41 #define fmemopen        acess_fmemopen
42 #define open_memstream  acess_open_memstream
43 #define fdopen  acess_fdopen
44 #define fclose  acess_fclose
45 #define ftell   acess_ftell
46 #define fseek   acess_fseek
47 #define clearerr        acess_clearerr
48 #define feof    acess_feof
49 #define ferr    acess_ferr
50 #define fileno  acess_fileno
51
52 #define fread   acess_fread
53 #define fwrite  acess_fwrite
54 #define fgetc   acess_fgetc
55 #define fgets   acess_fgets
56 #define fputc   acess_fputc
57 #define fputs   acess_fputs
58 #define getchar acess_getchar
59 #define putchar acess_putchar
60
61 #define fprintf         acess_fprintf
62 #define vfprintf        acess_vfprintf
63
64 #define scanf   acess_scanf
65 #define fscanf  acess_fscanf
66 #define sscanf  acess_sscanf
67 #define vscanf  acess_vscanf
68 #define vsscanf acess_vsscanf
69 #define vfscanf acess_vfscanf
70
71 #define stdin   acess_stdin
72 #define stdout  acess_stdout
73 #define stderr  acess_stderr
74 #endif
75
76 /* --- Standard IO --- */
77 extern int      printf(const char *format, ...);
78 extern int      vsnprintf(char *buf, size_t __maxlen, const char *format, va_list args);
79 extern int      vsprintf(char *buf, const char *format, va_list args);
80 extern int      sprintf(char *buf, const char *format, ...);
81 extern int      snprintf(char *buf, size_t maxlen, const char *format, ...);
82 extern void     perror(const char *s);
83
84 extern FILE     *fopen(const char *file, const char *mode);
85 extern FILE     *freopen(const char *file, const char *mode, FILE *fp);
86 extern FILE     *fmemopen(void *buffer, size_t length, const char *mode);
87 extern FILE     *open_memstream(char **bufferptr, size_t *lengthptr);
88 extern FILE     *fdopen(int fd, const char *modes);
89 extern int      fclose(FILE *fp);
90 extern void     fflush(FILE *fp);
91 extern off_t    ftell(FILE *fp);
92 extern int      fseek(FILE *fp, long int amt, int whence);
93 extern void     clearerr(FILE *stream);
94 extern int      feof(FILE *stream);
95 extern int      ferror(FILE *stream);
96 extern int      fileno(FILE *stream);
97
98 extern size_t   fread(void *buf, size_t size, size_t n, FILE *fp);
99 extern size_t   fwrite(const void *buf, size_t size, size_t n, FILE *fp);
100 extern int      fgetc(FILE *fp);
101 #define getc(fp)        fgetc(fp)
102 extern int      ungetc(int c, FILE *fp);
103 extern char     *fgets(char *s, int size, FILE *fp);
104 extern int      fputc(int ch, FILE *fp);
105 extern int      fputs(const char *s, FILE *fp);
106 extern int      getchar(void);
107 extern int      putchar(int ch);
108
109 extern int      fprintf(FILE *fp, const char *format, ...);
110 extern int      vfprintf(FILE *fp, const char *format, va_list args);
111
112 // scanf
113 extern int      scanf(const char *format, ...);
114 extern int      fscanf(FILE *stream, const char *format, ...);
115 extern int      sscanf(const char *str, const char *format, ...);
116 extern int      vscanf(const char *format, va_list ap);
117 extern int      vsscanf(const char *str, const char *format, va_list ap);
118 extern int      vfscanf(FILE *stream, const char *format, va_list ap);
119
120 extern FILE     *stdin;
121 extern FILE     *stdout;
122 extern FILE     *stderr;
123
124 #endif
125

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