1*46035553Spatrick // -*- C++ -*- 2*46035553Spatrick //===---------------------------- stdio.h ---------------------------------===// 3*46035553Spatrick // 4*46035553Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*46035553Spatrick // See https://llvm.org/LICENSE.txt for license information. 6*46035553Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*46035553Spatrick // 8*46035553Spatrick //===----------------------------------------------------------------------===// 9*46035553Spatrick 10*46035553Spatrick #if defined(__need_FILE) || defined(__need___FILE) 11*46035553Spatrick 12*46035553Spatrick #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 13*46035553Spatrick #pragma GCC system_header 14*46035553Spatrick #endif 15*46035553Spatrick 16*46035553Spatrick #include_next <stdio.h> 17*46035553Spatrick 18*46035553Spatrick #elif !defined(_LIBCPP_STDIO_H) 19*46035553Spatrick #define _LIBCPP_STDIO_H 20*46035553Spatrick 21*46035553Spatrick /* 22*46035553Spatrick stdio.h synopsis 23*46035553Spatrick 24*46035553Spatrick Macros: 25*46035553Spatrick 26*46035553Spatrick BUFSIZ 27*46035553Spatrick EOF 28*46035553Spatrick FILENAME_MAX 29*46035553Spatrick FOPEN_MAX 30*46035553Spatrick L_tmpnam 31*46035553Spatrick NULL 32*46035553Spatrick SEEK_CUR 33*46035553Spatrick SEEK_END 34*46035553Spatrick SEEK_SET 35*46035553Spatrick TMP_MAX 36*46035553Spatrick _IOFBF 37*46035553Spatrick _IOLBF 38*46035553Spatrick _IONBF 39*46035553Spatrick stderr 40*46035553Spatrick stdin 41*46035553Spatrick stdout 42*46035553Spatrick 43*46035553Spatrick Types: 44*46035553Spatrick 45*46035553Spatrick FILE 46*46035553Spatrick fpos_t 47*46035553Spatrick size_t 48*46035553Spatrick 49*46035553Spatrick int remove(const char* filename); 50*46035553Spatrick int rename(const char* old, const char* new); 51*46035553Spatrick FILE* tmpfile(void); 52*46035553Spatrick char* tmpnam(char* s); 53*46035553Spatrick int fclose(FILE* stream); 54*46035553Spatrick int fflush(FILE* stream); 55*46035553Spatrick FILE* fopen(const char* restrict filename, const char* restrict mode); 56*46035553Spatrick FILE* freopen(const char* restrict filename, const char * restrict mode, 57*46035553Spatrick FILE * restrict stream); 58*46035553Spatrick void setbuf(FILE* restrict stream, char* restrict buf); 59*46035553Spatrick int setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size); 60*46035553Spatrick int fprintf(FILE* restrict stream, const char* restrict format, ...); 61*46035553Spatrick int fscanf(FILE* restrict stream, const char * restrict format, ...); 62*46035553Spatrick int printf(const char* restrict format, ...); 63*46035553Spatrick int scanf(const char* restrict format, ...); 64*46035553Spatrick int snprintf(char* restrict s, size_t n, const char* restrict format, ...); // C99 65*46035553Spatrick int sprintf(char* restrict s, const char* restrict format, ...); 66*46035553Spatrick int sscanf(const char* restrict s, const char* restrict format, ...); 67*46035553Spatrick int vfprintf(FILE* restrict stream, const char* restrict format, va_list arg); 68*46035553Spatrick int vfscanf(FILE* restrict stream, const char* restrict format, va_list arg); // C99 69*46035553Spatrick int vprintf(const char* restrict format, va_list arg); 70*46035553Spatrick int vscanf(const char* restrict format, va_list arg); // C99 71*46035553Spatrick int vsnprintf(char* restrict s, size_t n, const char* restrict format, // C99 72*46035553Spatrick va_list arg); 73*46035553Spatrick int vsprintf(char* restrict s, const char* restrict format, va_list arg); 74*46035553Spatrick int vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99 75*46035553Spatrick int fgetc(FILE* stream); 76*46035553Spatrick char* fgets(char* restrict s, int n, FILE* restrict stream); 77*46035553Spatrick int fputc(int c, FILE* stream); 78*46035553Spatrick int fputs(const char* restrict s, FILE* restrict stream); 79*46035553Spatrick int getc(FILE* stream); 80*46035553Spatrick int getchar(void); 81*46035553Spatrick char* gets(char* s); // removed in C++14 82*46035553Spatrick int putc(int c, FILE* stream); 83*46035553Spatrick int putchar(int c); 84*46035553Spatrick int puts(const char* s); 85*46035553Spatrick int ungetc(int c, FILE* stream); 86*46035553Spatrick size_t fread(void* restrict ptr, size_t size, size_t nmemb, 87*46035553Spatrick FILE* restrict stream); 88*46035553Spatrick size_t fwrite(const void* restrict ptr, size_t size, size_t nmemb, 89*46035553Spatrick FILE* restrict stream); 90*46035553Spatrick int fgetpos(FILE* restrict stream, fpos_t* restrict pos); 91*46035553Spatrick int fseek(FILE* stream, long offset, int whence); 92*46035553Spatrick int fsetpos(FILE*stream, const fpos_t* pos); 93*46035553Spatrick long ftell(FILE* stream); 94*46035553Spatrick void rewind(FILE* stream); 95*46035553Spatrick void clearerr(FILE* stream); 96*46035553Spatrick int feof(FILE* stream); 97*46035553Spatrick int ferror(FILE* stream); 98*46035553Spatrick void perror(const char* s); 99*46035553Spatrick */ 100*46035553Spatrick 101*46035553Spatrick #include <__config> 102*46035553Spatrick 103*46035553Spatrick #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 104*46035553Spatrick #pragma GCC system_header 105*46035553Spatrick #endif 106*46035553Spatrick 107*46035553Spatrick #include_next <stdio.h> 108*46035553Spatrick 109*46035553Spatrick #ifdef __cplusplus 110*46035553Spatrick 111*46035553Spatrick #undef getc 112*46035553Spatrick #undef putc 113*46035553Spatrick #undef clearerr 114*46035553Spatrick #undef feof 115*46035553Spatrick #undef ferror 116*46035553Spatrick 117*46035553Spatrick #endif 118*46035553Spatrick 119*46035553Spatrick #endif // _LIBCPP_STDIO_H 120