70e71388e314370f1c979e383071175711c0bfc4
[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 vsprintf        acess_vsprintf
32 #define vsnprintf       acess_vsnprintf
33 #define sprintf acess_sprintf
34 #define snprintf        acess_snprintf
35 #define vprintf acess_vprintf
36 #define vfprintf        acess_vfprintf
37 #define fopen   acess_fopen
38 #define fdopen  acess_fdopen
39 #define freopen acess_freopen
40 #define fclose  acess_fclose
41
42 #define putchar acess_putchar
43 #define getchar acess_getchar
44
45 #define stdin   acess_stdin
46 #define stdout  acess_stdout
47 #endif
48
49 /* --- Standard IO --- */
50 extern int      printf(const char *format, ...);
51 extern int      vsnprintf(char *buf, size_t __maxlen, const char *format, va_list args);
52 extern int      vsprintf(char *buf, const char *format, va_list args);
53 extern int      sprintf(char *buf, const char *format, ...);
54 extern int      snprintf(char *buf, size_t maxlen, const char *format, ...);
55 extern void     perror(const char *s);
56
57 extern FILE     *fopen(const char *file, const char *mode);
58 extern FILE     *freopen(const char *file, const char *mode, FILE *fp);
59 extern FILE     *fdopen(int fd, const char *modes);
60 extern int      fclose(FILE *fp);
61 extern void     fflush(FILE *fp);
62 extern off_t    ftell(FILE *fp);
63 extern int      fseek(FILE *fp, long int amt, int whence);
64 extern void     clearerr(FILE *stream);
65 extern int      feof(FILE *stream);
66 extern int      ferror(FILE *stream);
67 extern int      fileno(FILE *stream);
68
69 extern size_t   fread(void *buf, size_t size, size_t n, FILE *fp);
70 extern size_t   fwrite(const void *buf, size_t size, size_t n, FILE *fp);
71 extern int      fgetc(FILE *fp);
72 extern char     *fgets(char *s, int size, FILE *fp);
73 extern int      fputc(int ch, FILE *fp);
74 extern int      fputs(const char *s, FILE *fp);
75 extern int      getchar(void);
76 extern int      putchar(int ch);
77
78 extern int      fprintf(FILE *fp, const char *format, ...);
79 extern int      vfprintf(FILE *fp, const char *format, va_list args);
80
81 // scanf
82 extern int      scanf(const char *format, ...);
83 extern int      fscanf(FILE *stream, const char *format, ...);
84 extern int      sscanf(const char *str, const char *format, ...);
85 extern int      vscanf(const char *format, va_list ap);
86 extern int      vsscanf(const char *str, const char *format, va_list ap);
87 extern int      vfscanf(FILE *stream, const char *format, va_list ap);
88
89 extern FILE     *stdin;
90 extern FILE     *stdout;
91 extern FILE     *stderr;
92
93 #endif
94

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