stdio.h raw

   1  #ifndef _STDIO_H
   2  #define _STDIO_H
   3  
   4  #ifdef __cplusplus
   5  extern "C" {
   6  #endif
   7  
   8  #include <features.h>
   9  
  10  #define __NEED_FILE
  11  #define __NEED___isoc_va_list
  12  #define __NEED_size_t
  13  
  14  #if __STDC_VERSION__ < 201112L
  15  #define __NEED_struct__IO_FILE
  16  #endif
  17  
  18  #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  19   || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
  20   || defined(_BSD_SOURCE)
  21  #define __NEED_ssize_t
  22  #define __NEED_off_t
  23  #define __NEED_va_list
  24  #endif
  25  
  26  #include <bits/alltypes.h>
  27  
  28  #if __cplusplus >= 201103L
  29  #define NULL nullptr
  30  #elif defined(__cplusplus)
  31  #define NULL 0L
  32  #else
  33  #define NULL ((void*)0)
  34  #endif
  35  
  36  #undef EOF
  37  #define EOF (-1)
  38  
  39  #undef SEEK_SET
  40  #undef SEEK_CUR
  41  #undef SEEK_END
  42  #define SEEK_SET 0
  43  #define SEEK_CUR 1
  44  #define SEEK_END 2
  45  
  46  #define _IOFBF 0
  47  #define _IOLBF 1
  48  #define _IONBF 2
  49  
  50  #define BUFSIZ 1024
  51  #define FILENAME_MAX 4096
  52  #define FOPEN_MAX 1000
  53  #define TMP_MAX 10000
  54  #define L_tmpnam 20
  55  
  56  typedef union _G_fpos64_t {
  57  	char __opaque[16];
  58  	long long __lldata;
  59  	double __align;
  60  } fpos_t;
  61  
  62  extern FILE *const stdin;
  63  extern FILE *const stdout;
  64  extern FILE *const stderr;
  65  
  66  #define stdin  (stdin)
  67  #define stdout (stdout)
  68  #define stderr (stderr)
  69  
  70  FILE *fopen(const char *__restrict, const char *__restrict);
  71  FILE *freopen(const char *__restrict, const char *__restrict, FILE *__restrict);
  72  int fclose(FILE *);
  73  
  74  int remove(const char *);
  75  int rename(const char *, const char *);
  76  
  77  int feof(FILE *);
  78  int ferror(FILE *);
  79  int fflush(FILE *);
  80  void clearerr(FILE *);
  81  
  82  int fseek(FILE *, long, int);
  83  long ftell(FILE *);
  84  void rewind(FILE *);
  85  
  86  int fgetpos(FILE *__restrict, fpos_t *__restrict);
  87  int fsetpos(FILE *, const fpos_t *);
  88  
  89  size_t fread(void *__restrict, size_t, size_t, FILE *__restrict);
  90  size_t fwrite(const void *__restrict, size_t, size_t, FILE *__restrict);
  91  
  92  int fgetc(FILE *);
  93  int getc(FILE *);
  94  int getchar(void);
  95  int ungetc(int, FILE *);
  96  
  97  int fputc(int, FILE *);
  98  int putc(int, FILE *);
  99  int putchar(int);
 100  
 101  char *fgets(char *__restrict, int, FILE *__restrict);
 102  #if __STDC_VERSION__ < 201112L
 103  char *gets(char *);
 104  #endif
 105  
 106  int fputs(const char *__restrict, FILE *__restrict);
 107  int puts(const char *);
 108  
 109  int printf(const char *__restrict, ...);
 110  int fprintf(FILE *__restrict, const char *__restrict, ...);
 111  int sprintf(char *__restrict, const char *__restrict, ...);
 112  int snprintf(char *__restrict, size_t, const char *__restrict, ...);
 113  
 114  int vprintf(const char *__restrict, __isoc_va_list);
 115  int vfprintf(FILE *__restrict, const char *__restrict, __isoc_va_list);
 116  int vsprintf(char *__restrict, const char *__restrict, __isoc_va_list);
 117  int vsnprintf(char *__restrict, size_t, const char *__restrict, __isoc_va_list);
 118  
 119  int scanf(const char *__restrict, ...);
 120  int fscanf(FILE *__restrict, const char *__restrict, ...);
 121  int sscanf(const char *__restrict, const char *__restrict, ...);
 122  int vscanf(const char *__restrict, __isoc_va_list);
 123  int vfscanf(FILE *__restrict, const char *__restrict, __isoc_va_list);
 124  int vsscanf(const char *__restrict, const char *__restrict, __isoc_va_list);
 125  
 126  void perror(const char *);
 127  
 128  int setvbuf(FILE *__restrict, char *__restrict, int, size_t);
 129  void setbuf(FILE *__restrict, char *__restrict);
 130  
 131  char *tmpnam(char *);
 132  FILE *tmpfile(void);
 133  
 134  #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
 135   || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
 136   || defined(_BSD_SOURCE)
 137  FILE *fmemopen(void *__restrict, size_t, const char *__restrict);
 138  FILE *open_memstream(char **, size_t *);
 139  FILE *fdopen(int, const char *);
 140  FILE *popen(const char *, const char *);
 141  int pclose(FILE *);
 142  int fileno(FILE *);
 143  int fseeko(FILE *, off_t, int);
 144  off_t ftello(FILE *);
 145  int dprintf(int, const char *__restrict, ...);
 146  int vdprintf(int, const char *__restrict, __isoc_va_list);
 147  void flockfile(FILE *);
 148  int ftrylockfile(FILE *);
 149  void funlockfile(FILE *);
 150  int getc_unlocked(FILE *);
 151  int getchar_unlocked(void);
 152  int putc_unlocked(int, FILE *);
 153  int putchar_unlocked(int);
 154  ssize_t getdelim(char **__restrict, size_t *__restrict, int, FILE *__restrict);
 155  ssize_t getline(char **__restrict, size_t *__restrict, FILE *__restrict);
 156  int renameat(int, const char *, int, const char *);
 157  char *ctermid(char *);
 158  #define L_ctermid 20
 159  #endif
 160  
 161  
 162  #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
 163   || defined(_BSD_SOURCE)
 164  #define P_tmpdir "/tmp"
 165  char *tempnam(const char *, const char *);
 166  #endif
 167  
 168  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 169  #define L_cuserid 20
 170  char *cuserid(char *);
 171  void setlinebuf(FILE *);
 172  void setbuffer(FILE *, char *, size_t);
 173  int fgetc_unlocked(FILE *);
 174  int fputc_unlocked(int, FILE *);
 175  int fflush_unlocked(FILE *);
 176  size_t fread_unlocked(void *, size_t, size_t, FILE *);
 177  size_t fwrite_unlocked(const void *, size_t, size_t, FILE *);
 178  void clearerr_unlocked(FILE *);
 179  int feof_unlocked(FILE *);
 180  int ferror_unlocked(FILE *);
 181  int fileno_unlocked(FILE *);
 182  int getw(FILE *);
 183  int putw(int, FILE *);
 184  char *fgetln(FILE *, size_t *);
 185  int asprintf(char **, const char *, ...);
 186  int vasprintf(char **, const char *, __isoc_va_list);
 187  #endif
 188  
 189  #ifdef _GNU_SOURCE
 190  char *fgets_unlocked(char *, int, FILE *);
 191  int fputs_unlocked(const char *, FILE *);
 192  
 193  typedef ssize_t (cookie_read_function_t)(void *, char *, size_t);
 194  typedef ssize_t (cookie_write_function_t)(void *, const char *, size_t);
 195  typedef int (cookie_seek_function_t)(void *, off_t *, int);
 196  typedef int (cookie_close_function_t)(void *);
 197  
 198  typedef struct _IO_cookie_io_functions_t {
 199  	cookie_read_function_t *read;
 200  	cookie_write_function_t *write;
 201  	cookie_seek_function_t *seek;
 202  	cookie_close_function_t *close;
 203  } cookie_io_functions_t;
 204  
 205  FILE *fopencookie(void *, const char *, cookie_io_functions_t);
 206  #endif
 207  
 208  #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
 209  #define tmpfile64 tmpfile
 210  #define fopen64 fopen
 211  #define freopen64 freopen
 212  #define fseeko64 fseeko
 213  #define ftello64 ftello
 214  #define fgetpos64 fgetpos
 215  #define fsetpos64 fsetpos
 216  #define fpos64_t fpos_t
 217  #define off64_t off_t
 218  #endif
 219  
 220  #ifdef __cplusplus
 221  }
 222  #endif
 223  
 224  #endif
 225