146035553Spatrick // -*- C++ -*- 2*dc37c87aSrobert //===----------------------------------------------------------------------===// 346035553Spatrick // 446035553Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 546035553Spatrick // See https://llvm.org/LICENSE.txt for license information. 646035553Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 746035553Spatrick // 846035553Spatrick //===----------------------------------------------------------------------===// 946035553Spatrick 1046035553Spatrick #if defined(__need_FILE) || defined(__need___FILE) 1146035553Spatrick 1246035553Spatrick #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 1346035553Spatrick # pragma GCC system_header 1446035553Spatrick #endif 1546035553Spatrick 1646035553Spatrick #include_next <stdio.h> 1746035553Spatrick 1846035553Spatrick #elif !defined(_LIBCPP_STDIO_H) 1946035553Spatrick #define _LIBCPP_STDIO_H 2046035553Spatrick 2146035553Spatrick /* 2246035553Spatrick stdio.h synopsis 2346035553Spatrick 2446035553Spatrick Macros: 2546035553Spatrick 2646035553Spatrick BUFSIZ 2746035553Spatrick EOF 2846035553Spatrick FILENAME_MAX 2946035553Spatrick FOPEN_MAX 3046035553Spatrick L_tmpnam 3146035553Spatrick NULL 3246035553Spatrick SEEK_CUR 3346035553Spatrick SEEK_END 3446035553Spatrick SEEK_SET 3546035553Spatrick TMP_MAX 3646035553Spatrick _IOFBF 3746035553Spatrick _IOLBF 3846035553Spatrick _IONBF 3946035553Spatrick stderr 4046035553Spatrick stdin 4146035553Spatrick stdout 4246035553Spatrick 4346035553Spatrick Types: 4446035553Spatrick 4546035553Spatrick FILE 4646035553Spatrick fpos_t 4746035553Spatrick size_t 4846035553Spatrick 4946035553Spatrick int remove(const char* filename); 5046035553Spatrick int rename(const char* old, const char* new); 5146035553Spatrick FILE* tmpfile(void); 5246035553Spatrick char* tmpnam(char* s); 5346035553Spatrick int fclose(FILE* stream); 5446035553Spatrick int fflush(FILE* stream); 5546035553Spatrick FILE* fopen(const char* restrict filename, const char* restrict mode); 5646035553Spatrick FILE* freopen(const char* restrict filename, const char * restrict mode, 5746035553Spatrick FILE * restrict stream); 5846035553Spatrick void setbuf(FILE* restrict stream, char* restrict buf); 5946035553Spatrick int setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size); 6046035553Spatrick int fprintf(FILE* restrict stream, const char* restrict format, ...); 6146035553Spatrick int fscanf(FILE* restrict stream, const char * restrict format, ...); 6246035553Spatrick int printf(const char* restrict format, ...); 6346035553Spatrick int scanf(const char* restrict format, ...); 6446035553Spatrick int snprintf(char* restrict s, size_t n, const char* restrict format, ...); // C99 6546035553Spatrick int sprintf(char* restrict s, const char* restrict format, ...); 6646035553Spatrick int sscanf(const char* restrict s, const char* restrict format, ...); 6746035553Spatrick int vfprintf(FILE* restrict stream, const char* restrict format, va_list arg); 6846035553Spatrick int vfscanf(FILE* restrict stream, const char* restrict format, va_list arg); // C99 6946035553Spatrick int vprintf(const char* restrict format, va_list arg); 7046035553Spatrick int vscanf(const char* restrict format, va_list arg); // C99 7146035553Spatrick int vsnprintf(char* restrict s, size_t n, const char* restrict format, // C99 7246035553Spatrick va_list arg); 7346035553Spatrick int vsprintf(char* restrict s, const char* restrict format, va_list arg); 7446035553Spatrick int vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99 7546035553Spatrick int fgetc(FILE* stream); 7646035553Spatrick char* fgets(char* restrict s, int n, FILE* restrict stream); 7746035553Spatrick int fputc(int c, FILE* stream); 7846035553Spatrick int fputs(const char* restrict s, FILE* restrict stream); 7946035553Spatrick int getc(FILE* stream); 8046035553Spatrick int getchar(void); 8146035553Spatrick char* gets(char* s); // removed in C++14 8246035553Spatrick int putc(int c, FILE* stream); 8346035553Spatrick int putchar(int c); 8446035553Spatrick int puts(const char* s); 8546035553Spatrick int ungetc(int c, FILE* stream); 8646035553Spatrick size_t fread(void* restrict ptr, size_t size, size_t nmemb, 8746035553Spatrick FILE* restrict stream); 8846035553Spatrick size_t fwrite(const void* restrict ptr, size_t size, size_t nmemb, 8946035553Spatrick FILE* restrict stream); 9046035553Spatrick int fgetpos(FILE* restrict stream, fpos_t* restrict pos); 9146035553Spatrick int fseek(FILE* stream, long offset, int whence); 9246035553Spatrick int fsetpos(FILE*stream, const fpos_t* pos); 9346035553Spatrick long ftell(FILE* stream); 9446035553Spatrick void rewind(FILE* stream); 9546035553Spatrick void clearerr(FILE* stream); 9646035553Spatrick int feof(FILE* stream); 9746035553Spatrick int ferror(FILE* stream); 9846035553Spatrick void perror(const char* s); 9946035553Spatrick */ 10046035553Spatrick 10146035553Spatrick #include <__config> 10246035553Spatrick 10346035553Spatrick #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 10446035553Spatrick # pragma GCC system_header 10546035553Spatrick #endif 10646035553Spatrick 107*dc37c87aSrobert # if __has_include_next(<stdio.h>) 10846035553Spatrick # include_next <stdio.h> 109*dc37c87aSrobert # endif 11046035553Spatrick 11146035553Spatrick #ifdef __cplusplus 11246035553Spatrick 11346035553Spatrick #undef getc 11446035553Spatrick #undef putc 11546035553Spatrick #undef clearerr 11646035553Spatrick #undef feof 11746035553Spatrick #undef ferror 118b0c4c902Spatrick #undef putchar 119b0c4c902Spatrick #undef getchar 12046035553Spatrick 12146035553Spatrick #endif 12246035553Spatrick 12346035553Spatrick #endif // _LIBCPP_STDIO_H 124