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 10*ce777190SNikolas Klauser#ifndef _LIBCPP___CXX03_CSTDIO 11*ce777190SNikolas Klauser#define _LIBCPP___CXX03_CSTDIO 12e78f53d1SNikolas Klauser 13e78f53d1SNikolas Klauser/* 14e78f53d1SNikolas Klauser cstdio synopsis 15e78f53d1SNikolas Klauser 16e78f53d1SNikolas KlauserMacros: 17e78f53d1SNikolas Klauser 18e78f53d1SNikolas Klauser BUFSIZ 19e78f53d1SNikolas Klauser EOF 20e78f53d1SNikolas Klauser FILENAME_MAX 21e78f53d1SNikolas Klauser FOPEN_MAX 22e78f53d1SNikolas Klauser L_tmpnam 23e78f53d1SNikolas Klauser NULL 24e78f53d1SNikolas Klauser SEEK_CUR 25e78f53d1SNikolas Klauser SEEK_END 26e78f53d1SNikolas Klauser SEEK_SET 27e78f53d1SNikolas Klauser TMP_MAX 28e78f53d1SNikolas Klauser _IOFBF 29e78f53d1SNikolas Klauser _IOLBF 30e78f53d1SNikolas Klauser _IONBF 31e78f53d1SNikolas Klauser stderr 32e78f53d1SNikolas Klauser stdin 33e78f53d1SNikolas Klauser stdout 34e78f53d1SNikolas Klauser 35e78f53d1SNikolas Klausernamespace std 36e78f53d1SNikolas Klauser{ 37e78f53d1SNikolas Klauser 38e78f53d1SNikolas KlauserTypes: 39e78f53d1SNikolas Klauser 40e78f53d1SNikolas KlauserFILE 41e78f53d1SNikolas Klauserfpos_t 42e78f53d1SNikolas Klausersize_t 43e78f53d1SNikolas Klauser 44e78f53d1SNikolas Klauserint remove(const char* filename); 45e78f53d1SNikolas Klauserint rename(const char* old, const char* new); 46e78f53d1SNikolas KlauserFILE* tmpfile(void); 47e78f53d1SNikolas Klauserchar* tmpnam(char* s); 48e78f53d1SNikolas Klauserint fclose(FILE* stream); 49e78f53d1SNikolas Klauserint fflush(FILE* stream); 50e78f53d1SNikolas KlauserFILE* fopen(const char* restrict filename, const char* restrict mode); 51e78f53d1SNikolas KlauserFILE* freopen(const char* restrict filename, const char * restrict mode, 52e78f53d1SNikolas Klauser FILE * restrict stream); 53e78f53d1SNikolas Klauservoid setbuf(FILE* restrict stream, char* restrict buf); 54e78f53d1SNikolas Klauserint setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size); 55e78f53d1SNikolas Klauserint fprintf(FILE* restrict stream, const char* restrict format, ...); 56e78f53d1SNikolas Klauserint fscanf(FILE* restrict stream, const char * restrict format, ...); 57e78f53d1SNikolas Klauserint printf(const char* restrict format, ...); 58e78f53d1SNikolas Klauserint scanf(const char* restrict format, ...); 59e78f53d1SNikolas Klauserint snprintf(char* restrict s, size_t n, const char* restrict format, ...); // C99 60e78f53d1SNikolas Klauserint sprintf(char* restrict s, const char* restrict format, ...); 61e78f53d1SNikolas Klauserint sscanf(const char* restrict s, const char* restrict format, ...); 62e78f53d1SNikolas Klauserint vfprintf(FILE* restrict stream, const char* restrict format, va_list arg); 63e78f53d1SNikolas Klauserint vfscanf(FILE* restrict stream, const char* restrict format, va_list arg); // C99 64e78f53d1SNikolas Klauserint vprintf(const char* restrict format, va_list arg); 65e78f53d1SNikolas Klauserint vscanf(const char* restrict format, va_list arg); // C99 66e78f53d1SNikolas Klauserint vsnprintf(char* restrict s, size_t n, const char* restrict format, // C99 67e78f53d1SNikolas Klauser va_list arg); 68e78f53d1SNikolas Klauserint vsprintf(char* restrict s, const char* restrict format, va_list arg); 69e78f53d1SNikolas Klauserint vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99 70e78f53d1SNikolas Klauserint fgetc(FILE* stream); 71e78f53d1SNikolas Klauserchar* fgets(char* restrict s, int n, FILE* restrict stream); 72e78f53d1SNikolas Klauserint fputc(int c, FILE* stream); 73e78f53d1SNikolas Klauserint fputs(const char* restrict s, FILE* restrict stream); 74e78f53d1SNikolas Klauserint getc(FILE* stream); 75e78f53d1SNikolas Klauserint getchar(void); 76e78f53d1SNikolas Klauserchar* gets(char* s); // removed in C++14 77e78f53d1SNikolas Klauserint putc(int c, FILE* stream); 78e78f53d1SNikolas Klauserint putchar(int c); 79e78f53d1SNikolas Klauserint puts(const char* s); 80e78f53d1SNikolas Klauserint ungetc(int c, FILE* stream); 81e78f53d1SNikolas Klausersize_t fread(void* restrict ptr, size_t size, size_t nmemb, 82e78f53d1SNikolas Klauser FILE* restrict stream); 83e78f53d1SNikolas Klausersize_t fwrite(const void* restrict ptr, size_t size, size_t nmemb, 84e78f53d1SNikolas Klauser FILE* restrict stream); 85e78f53d1SNikolas Klauserint fgetpos(FILE* restrict stream, fpos_t* restrict pos); 86e78f53d1SNikolas Klauserint fseek(FILE* stream, long offset, int whence); 87e78f53d1SNikolas Klauserint fsetpos(FILE*stream, const fpos_t* pos); 88e78f53d1SNikolas Klauserlong ftell(FILE* stream); 89e78f53d1SNikolas Klauservoid rewind(FILE* stream); 90e78f53d1SNikolas Klauservoid clearerr(FILE* stream); 91e78f53d1SNikolas Klauserint feof(FILE* stream); 92e78f53d1SNikolas Klauserint ferror(FILE* stream); 93e78f53d1SNikolas Klauservoid perror(const char* s); 94e78f53d1SNikolas Klauser 95e78f53d1SNikolas Klauser} // std 96e78f53d1SNikolas Klauser*/ 97e78f53d1SNikolas Klauser 9873fbae83SNikolas Klauser#include <__cxx03/__config> 99e78f53d1SNikolas Klauser 10073fbae83SNikolas Klauser#include <__cxx03/stdio.h> 101e78f53d1SNikolas Klauser 102*ce777190SNikolas Klauser#ifndef _LIBCPP___CXX03_STDIO_H 103e78f53d1SNikolas Klauser# error <cstdio> tried including <stdio.h> but didn't find libc++'s <stdio.h> header. \ 104e78f53d1SNikolas Klauser This usually means that your header search paths are not configured properly. \ 105e78f53d1SNikolas Klauser The header search paths should contain the C++ Standard Library headers before \ 106e78f53d1SNikolas Klauser any C Standard Library, and you are probably using compiler flags that make that \ 107e78f53d1SNikolas Klauser not be the case. 108e78f53d1SNikolas Klauser#endif 109e78f53d1SNikolas Klauser 110e78f53d1SNikolas Klauser#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 111e78f53d1SNikolas Klauser# pragma GCC system_header 112e78f53d1SNikolas Klauser#endif 113e78f53d1SNikolas Klauser 114e78f53d1SNikolas Klauser_LIBCPP_BEGIN_NAMESPACE_STD 115e78f53d1SNikolas Klauser 116e78f53d1SNikolas Klauserusing ::FILE _LIBCPP_USING_IF_EXISTS; 117e78f53d1SNikolas Klauserusing ::fpos_t _LIBCPP_USING_IF_EXISTS; 118e78f53d1SNikolas Klauserusing ::size_t _LIBCPP_USING_IF_EXISTS; 119e78f53d1SNikolas Klauser 120e78f53d1SNikolas Klauserusing ::fclose _LIBCPP_USING_IF_EXISTS; 121e78f53d1SNikolas Klauserusing ::fflush _LIBCPP_USING_IF_EXISTS; 122e78f53d1SNikolas Klauserusing ::setbuf _LIBCPP_USING_IF_EXISTS; 123e78f53d1SNikolas Klauserusing ::setvbuf _LIBCPP_USING_IF_EXISTS; 124e78f53d1SNikolas Klauserusing ::fprintf _LIBCPP_USING_IF_EXISTS; 125e78f53d1SNikolas Klauserusing ::fscanf _LIBCPP_USING_IF_EXISTS; 126e78f53d1SNikolas Klauserusing ::snprintf _LIBCPP_USING_IF_EXISTS; 127e78f53d1SNikolas Klauserusing ::sprintf _LIBCPP_USING_IF_EXISTS; 128e78f53d1SNikolas Klauserusing ::sscanf _LIBCPP_USING_IF_EXISTS; 129e78f53d1SNikolas Klauserusing ::vfprintf _LIBCPP_USING_IF_EXISTS; 130e78f53d1SNikolas Klauserusing ::vfscanf _LIBCPP_USING_IF_EXISTS; 131e78f53d1SNikolas Klauserusing ::vsscanf _LIBCPP_USING_IF_EXISTS; 132e78f53d1SNikolas Klauserusing ::vsnprintf _LIBCPP_USING_IF_EXISTS; 133e78f53d1SNikolas Klauserusing ::vsprintf _LIBCPP_USING_IF_EXISTS; 134e78f53d1SNikolas Klauserusing ::fgetc _LIBCPP_USING_IF_EXISTS; 135e78f53d1SNikolas Klauserusing ::fgets _LIBCPP_USING_IF_EXISTS; 136e78f53d1SNikolas Klauserusing ::fputc _LIBCPP_USING_IF_EXISTS; 137e78f53d1SNikolas Klauserusing ::fputs _LIBCPP_USING_IF_EXISTS; 138e78f53d1SNikolas Klauserusing ::getc _LIBCPP_USING_IF_EXISTS; 139e78f53d1SNikolas Klauserusing ::putc _LIBCPP_USING_IF_EXISTS; 140e78f53d1SNikolas Klauserusing ::ungetc _LIBCPP_USING_IF_EXISTS; 141e78f53d1SNikolas Klauserusing ::fread _LIBCPP_USING_IF_EXISTS; 142e78f53d1SNikolas Klauserusing ::fwrite _LIBCPP_USING_IF_EXISTS; 143e78f53d1SNikolas Klauserusing ::fgetpos _LIBCPP_USING_IF_EXISTS; 144e78f53d1SNikolas Klauserusing ::fseek _LIBCPP_USING_IF_EXISTS; 145e78f53d1SNikolas Klauserusing ::fsetpos _LIBCPP_USING_IF_EXISTS; 146e78f53d1SNikolas Klauserusing ::ftell _LIBCPP_USING_IF_EXISTS; 147e78f53d1SNikolas Klauserusing ::rewind _LIBCPP_USING_IF_EXISTS; 148e78f53d1SNikolas Klauserusing ::clearerr _LIBCPP_USING_IF_EXISTS; 149e78f53d1SNikolas Klauserusing ::feof _LIBCPP_USING_IF_EXISTS; 150e78f53d1SNikolas Klauserusing ::ferror _LIBCPP_USING_IF_EXISTS; 151e78f53d1SNikolas Klauserusing ::perror _LIBCPP_USING_IF_EXISTS; 152e78f53d1SNikolas Klauser 153e78f53d1SNikolas Klauserusing ::fopen _LIBCPP_USING_IF_EXISTS; 154e78f53d1SNikolas Klauserusing ::freopen _LIBCPP_USING_IF_EXISTS; 155e78f53d1SNikolas Klauserusing ::remove _LIBCPP_USING_IF_EXISTS; 156e78f53d1SNikolas Klauserusing ::rename _LIBCPP_USING_IF_EXISTS; 157e78f53d1SNikolas Klauserusing ::tmpfile _LIBCPP_USING_IF_EXISTS; 158e78f53d1SNikolas Klauserusing ::tmpnam _LIBCPP_USING_IF_EXISTS; 159e78f53d1SNikolas Klauser 160e78f53d1SNikolas Klauserusing ::getchar _LIBCPP_USING_IF_EXISTS; 161e78f53d1SNikolas Klauser#if _LIBCPP_STD_VER <= 11 162e78f53d1SNikolas Klauserusing ::gets _LIBCPP_USING_IF_EXISTS; 163e78f53d1SNikolas Klauser#endif 164e78f53d1SNikolas Klauserusing ::scanf _LIBCPP_USING_IF_EXISTS; 165e78f53d1SNikolas Klauserusing ::vscanf _LIBCPP_USING_IF_EXISTS; 166e78f53d1SNikolas Klauser 167e78f53d1SNikolas Klauserusing ::printf _LIBCPP_USING_IF_EXISTS; 168e78f53d1SNikolas Klauserusing ::putchar _LIBCPP_USING_IF_EXISTS; 169e78f53d1SNikolas Klauserusing ::puts _LIBCPP_USING_IF_EXISTS; 170e78f53d1SNikolas Klauserusing ::vprintf _LIBCPP_USING_IF_EXISTS; 171e78f53d1SNikolas Klauser 172e78f53d1SNikolas Klauser_LIBCPP_END_NAMESPACE_STD 173e78f53d1SNikolas Klauser 174*ce777190SNikolas Klauser#endif // _LIBCPP___CXX03_CSTDIO 175