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