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