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