1570af302Sopenharmony_ci#ifndef _STDIO_H
2570af302Sopenharmony_ci#define _STDIO_H
3570af302Sopenharmony_ci
4570af302Sopenharmony_ci#ifdef __cplusplus
5570af302Sopenharmony_ciextern "C" {
6570af302Sopenharmony_ci#endif
7570af302Sopenharmony_ci
8570af302Sopenharmony_ci#include <features.h>
9570af302Sopenharmony_ci
10570af302Sopenharmony_ci#define __NEED_FILE
11570af302Sopenharmony_ci#define __NEED___isoc_va_list
12570af302Sopenharmony_ci#define __NEED_size_t
13570af302Sopenharmony_ci
14570af302Sopenharmony_ci#if __STDC_VERSION__ < 201112L
15570af302Sopenharmony_ci#define __NEED_struct__IO_FILE
16570af302Sopenharmony_ci#endif
17570af302Sopenharmony_ci
18570af302Sopenharmony_ci#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
19570af302Sopenharmony_ci || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
20570af302Sopenharmony_ci || defined(_BSD_SOURCE)
21570af302Sopenharmony_ci#define __NEED_ssize_t
22570af302Sopenharmony_ci#define __NEED_off_t
23570af302Sopenharmony_ci#define __NEED_va_list
24570af302Sopenharmony_ci#endif
25570af302Sopenharmony_ci
26570af302Sopenharmony_ci#include <bits/alltypes.h>
27570af302Sopenharmony_ci
28570af302Sopenharmony_ci#ifdef __cplusplus
29570af302Sopenharmony_ci#define NULL 0L
30570af302Sopenharmony_ci#else
31570af302Sopenharmony_ci#define NULL ((void*)0)
32570af302Sopenharmony_ci#endif
33570af302Sopenharmony_ci
34570af302Sopenharmony_ci#undef EOF
35570af302Sopenharmony_ci#define EOF (-1)
36570af302Sopenharmony_ci
37570af302Sopenharmony_ci#undef SEEK_SET
38570af302Sopenharmony_ci#undef SEEK_CUR
39570af302Sopenharmony_ci#undef SEEK_END
40570af302Sopenharmony_ci#define SEEK_SET 0
41570af302Sopenharmony_ci#define SEEK_CUR 1
42570af302Sopenharmony_ci#define SEEK_END 2
43570af302Sopenharmony_ci
44570af302Sopenharmony_ci#define _IOFBF 0
45570af302Sopenharmony_ci#define _IOLBF 1
46570af302Sopenharmony_ci#define _IONBF 2
47570af302Sopenharmony_ci
48570af302Sopenharmony_ci#define BUFSIZ 1024
49570af302Sopenharmony_ci#define FILENAME_MAX 4096
50570af302Sopenharmony_ci#define FOPEN_MAX 1000
51570af302Sopenharmony_ci#define TMP_MAX 10000
52570af302Sopenharmony_ci#define L_tmpnam 20
53570af302Sopenharmony_ci
54570af302Sopenharmony_citypedef union _G_fpos64_t {
55570af302Sopenharmony_ci	char __opaque[16];
56570af302Sopenharmony_ci	long long __lldata;
57570af302Sopenharmony_ci	double __align;
58570af302Sopenharmony_ci} fpos_t;
59570af302Sopenharmony_ci
60570af302Sopenharmony_ciextern FILE *const stdin;
61570af302Sopenharmony_ciextern FILE *const stdout;
62570af302Sopenharmony_ciextern FILE *const stderr;
63570af302Sopenharmony_ci
64570af302Sopenharmony_ci#define stdin  (stdin)
65570af302Sopenharmony_ci#define stdout (stdout)
66570af302Sopenharmony_ci#define stderr (stderr)
67570af302Sopenharmony_ci
68570af302Sopenharmony_ciFILE *fopen(const char *__restrict, const char *__restrict);
69570af302Sopenharmony_ciFILE *freopen(const char *__restrict, const char *__restrict, FILE *__restrict);
70570af302Sopenharmony_ciint fclose(FILE *);
71570af302Sopenharmony_ci
72570af302Sopenharmony_ciint remove(const char *);
73570af302Sopenharmony_ciint rename(const char *, const char *);
74570af302Sopenharmony_ci
75570af302Sopenharmony_ciint feof(FILE *);
76570af302Sopenharmony_ciint ferror(FILE *);
77570af302Sopenharmony_ciint fflush(FILE *);
78570af302Sopenharmony_civoid clearerr(FILE *);
79570af302Sopenharmony_ci
80570af302Sopenharmony_ciint fseek(FILE *, long, int);
81570af302Sopenharmony_cilong ftell(FILE *);
82570af302Sopenharmony_civoid rewind(FILE *);
83570af302Sopenharmony_ci
84570af302Sopenharmony_ciint fgetpos(FILE *__restrict, fpos_t *__restrict);
85570af302Sopenharmony_ciint fsetpos(FILE *, const fpos_t *);
86570af302Sopenharmony_ci
87570af302Sopenharmony_cisize_t fread(void *__restrict, size_t, size_t, FILE *__restrict);
88570af302Sopenharmony_cisize_t fwrite(const void *__restrict, size_t, size_t, FILE *__restrict);
89570af302Sopenharmony_ci
90570af302Sopenharmony_ciint fgetc(FILE *);
91570af302Sopenharmony_ciint getc(FILE *);
92570af302Sopenharmony_ciint getchar(void);
93570af302Sopenharmony_ciint ungetc(int, FILE *);
94570af302Sopenharmony_ci
95570af302Sopenharmony_ciint fputc(int, FILE *);
96570af302Sopenharmony_ciint putc(int, FILE *);
97570af302Sopenharmony_ciint putchar(int);
98570af302Sopenharmony_ci
99570af302Sopenharmony_cichar *fgets(char *__restrict, int, FILE *__restrict);
100570af302Sopenharmony_ci#if __STDC_VERSION__ < 201112L
101570af302Sopenharmony_cichar *gets(char *);
102570af302Sopenharmony_ci#endif
103570af302Sopenharmony_ci
104570af302Sopenharmony_ciint fputs(const char *__restrict, FILE *__restrict);
105570af302Sopenharmony_ciint puts(const char *);
106570af302Sopenharmony_ci
107570af302Sopenharmony_ciint printf(const char *__restrict, ...);
108570af302Sopenharmony_ciint fprintf(FILE *__restrict, const char *__restrict, ...);
109570af302Sopenharmony_ciint sprintf(char *__restrict, const char *__restrict, ...);
110570af302Sopenharmony_ciint snprintf(char *__restrict, size_t, const char *__restrict, ...);
111570af302Sopenharmony_ci
112570af302Sopenharmony_ciint vprintf(const char *__restrict, __isoc_va_list);
113570af302Sopenharmony_ciint vfprintf(FILE *__restrict, const char *__restrict, __isoc_va_list);
114570af302Sopenharmony_ciint vsprintf(char *__restrict, const char *__restrict, __isoc_va_list);
115570af302Sopenharmony_ciint vsnprintf(char *__restrict, size_t, const char *__restrict, __isoc_va_list);
116570af302Sopenharmony_ci
117570af302Sopenharmony_ciint scanf(const char *__restrict, ...);
118570af302Sopenharmony_ciint fscanf(FILE *__restrict, const char *__restrict, ...);
119570af302Sopenharmony_ciint sscanf(const char *__restrict, const char *__restrict, ...);
120570af302Sopenharmony_ciint vscanf(const char *__restrict, __isoc_va_list);
121570af302Sopenharmony_ciint vfscanf(FILE *__restrict, const char *__restrict, __isoc_va_list);
122570af302Sopenharmony_ciint vsscanf(const char *__restrict, const char *__restrict, __isoc_va_list);
123570af302Sopenharmony_ci
124570af302Sopenharmony_civoid perror(const char *);
125570af302Sopenharmony_ci
126570af302Sopenharmony_ciint setvbuf(FILE *__restrict, char *__restrict, int, size_t);
127570af302Sopenharmony_civoid setbuf(FILE *__restrict, char *__restrict);
128570af302Sopenharmony_ci
129570af302Sopenharmony_cichar *tmpnam(char *);
130570af302Sopenharmony_ciFILE *tmpfile(void);
131570af302Sopenharmony_ci
132570af302Sopenharmony_ci#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
133570af302Sopenharmony_ci || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
134570af302Sopenharmony_ci || defined(_BSD_SOURCE)
135570af302Sopenharmony_ciFILE *fmemopen(void *__restrict, size_t, const char *__restrict);
136570af302Sopenharmony_ciFILE *open_memstream(char **, size_t *);
137570af302Sopenharmony_ciFILE *fdopen(int, const char *);
138570af302Sopenharmony_ciFILE *popen(const char *, const char *);
139570af302Sopenharmony_ciint pclose(FILE *);
140570af302Sopenharmony_ciint fileno(FILE *);
141570af302Sopenharmony_ciint fseeko(FILE *, off_t, int);
142570af302Sopenharmony_cioff_t ftello(FILE *);
143570af302Sopenharmony_ciint dprintf(int, const char *__restrict, ...);
144570af302Sopenharmony_ciint vdprintf(int, const char *__restrict, __isoc_va_list);
145570af302Sopenharmony_civoid flockfile(FILE *);
146570af302Sopenharmony_ciint ftrylockfile(FILE *);
147570af302Sopenharmony_civoid funlockfile(FILE *);
148570af302Sopenharmony_ciint getc_unlocked(FILE *);
149570af302Sopenharmony_ciint getchar_unlocked(void);
150570af302Sopenharmony_ciint putc_unlocked(int, FILE *);
151570af302Sopenharmony_ciint putchar_unlocked(int);
152570af302Sopenharmony_cissize_t getdelim(char **__restrict, size_t *__restrict, int, FILE *__restrict);
153570af302Sopenharmony_cissize_t getline(char **__restrict, size_t *__restrict, FILE *__restrict);
154570af302Sopenharmony_ciint renameat(int, const char *, int, const char *);
155570af302Sopenharmony_cichar *ctermid(char *);
156570af302Sopenharmony_ci#define L_ctermid 20
157570af302Sopenharmony_ci#endif
158570af302Sopenharmony_ci
159570af302Sopenharmony_ci
160570af302Sopenharmony_ci#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
161570af302Sopenharmony_ci || defined(_BSD_SOURCE)
162570af302Sopenharmony_ci#define P_tmpdir "/tmp"
163570af302Sopenharmony_cichar *tempnam(const char *, const char *);
164570af302Sopenharmony_ci#endif
165570af302Sopenharmony_ci
166570af302Sopenharmony_ci#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
167570af302Sopenharmony_ci#define L_cuserid 20
168570af302Sopenharmony_cichar *cuserid(char *);
169570af302Sopenharmony_civoid setlinebuf(FILE *);
170570af302Sopenharmony_civoid setbuffer(FILE *, char *, size_t);
171570af302Sopenharmony_ciint fgetc_unlocked(FILE *);
172570af302Sopenharmony_ciint fputc_unlocked(int, FILE *);
173570af302Sopenharmony_ciint fflush_unlocked(FILE *);
174570af302Sopenharmony_cisize_t fread_unlocked(void *, size_t, size_t, FILE *);
175570af302Sopenharmony_cisize_t fwrite_unlocked(const void *, size_t, size_t, FILE *);
176570af302Sopenharmony_civoid clearerr_unlocked(FILE *);
177570af302Sopenharmony_ciint feof_unlocked(FILE *);
178570af302Sopenharmony_ciint ferror_unlocked(FILE *);
179570af302Sopenharmony_ciint fileno_unlocked(FILE *);
180570af302Sopenharmony_ciint getw(FILE *);
181570af302Sopenharmony_ciint putw(int, FILE *);
182570af302Sopenharmony_cichar *fgetln(FILE *, size_t *);
183570af302Sopenharmony_ciint asprintf(char **, const char *, ...);
184570af302Sopenharmony_ciint vasprintf(char **, const char *, __isoc_va_list);
185570af302Sopenharmony_ci#endif
186570af302Sopenharmony_ci
187570af302Sopenharmony_ci#ifdef _GNU_SOURCE
188570af302Sopenharmony_cichar *fgets_unlocked(char *, int, FILE *);
189570af302Sopenharmony_ciint fputs_unlocked(const char *, FILE *);
190570af302Sopenharmony_ci
191570af302Sopenharmony_citypedef ssize_t (cookie_read_function_t)(void *, char *, size_t);
192570af302Sopenharmony_citypedef ssize_t (cookie_write_function_t)(void *, const char *, size_t);
193570af302Sopenharmony_citypedef int (cookie_seek_function_t)(void *, off_t *, int);
194570af302Sopenharmony_citypedef int (cookie_close_function_t)(void *);
195570af302Sopenharmony_ci
196570af302Sopenharmony_citypedef struct _IO_cookie_io_functions_t {
197570af302Sopenharmony_ci	cookie_read_function_t *read;
198570af302Sopenharmony_ci	cookie_write_function_t *write;
199570af302Sopenharmony_ci	cookie_seek_function_t *seek;
200570af302Sopenharmony_ci	cookie_close_function_t *close;
201570af302Sopenharmony_ci} cookie_io_functions_t;
202570af302Sopenharmony_ci
203570af302Sopenharmony_ciFILE *fopencookie(void *, const char *, cookie_io_functions_t);
204570af302Sopenharmony_ci#endif
205570af302Sopenharmony_ci
206570af302Sopenharmony_ci#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
207570af302Sopenharmony_ci#define tmpfile64 tmpfile
208570af302Sopenharmony_ci#define fopen64 fopen
209570af302Sopenharmony_ci#define freopen64 freopen
210570af302Sopenharmony_ci#define fseeko64 fseeko
211570af302Sopenharmony_ci#define ftello64 ftello
212570af302Sopenharmony_ci#define fgetpos64 fgetpos
213570af302Sopenharmony_ci#define fsetpos64 fsetpos
214570af302Sopenharmony_ci#define fpos64_t fpos_t
215570af302Sopenharmony_ci#define off64_t off_t
216570af302Sopenharmony_ci#endif
217570af302Sopenharmony_ci
218570af302Sopenharmony_ci#ifdef __cplusplus
219570af302Sopenharmony_ci}
220570af302Sopenharmony_ci#endif
221570af302Sopenharmony_ci
222570af302Sopenharmony_ci#endif
223