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