1*0b57cec5SDimitry Andric// -*- C++ -*- 2*0b57cec5SDimitry Andric//===---------------------------- cstdio ----------------------------------===// 3*0b57cec5SDimitry Andric// 4*0b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*0b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 6*0b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*0b57cec5SDimitry Andric// 8*0b57cec5SDimitry Andric//===----------------------------------------------------------------------===// 9*0b57cec5SDimitry Andric 10*0b57cec5SDimitry Andric#ifndef _LIBCPP_CSTDIO 11*0b57cec5SDimitry Andric#define _LIBCPP_CSTDIO 12*0b57cec5SDimitry Andric 13*0b57cec5SDimitry Andric/* 14*0b57cec5SDimitry Andric cstdio synopsis 15*0b57cec5SDimitry Andric 16*0b57cec5SDimitry AndricMacros: 17*0b57cec5SDimitry Andric 18*0b57cec5SDimitry Andric BUFSIZ 19*0b57cec5SDimitry Andric EOF 20*0b57cec5SDimitry Andric FILENAME_MAX 21*0b57cec5SDimitry Andric FOPEN_MAX 22*0b57cec5SDimitry Andric L_tmpnam 23*0b57cec5SDimitry Andric NULL 24*0b57cec5SDimitry Andric SEEK_CUR 25*0b57cec5SDimitry Andric SEEK_END 26*0b57cec5SDimitry Andric SEEK_SET 27*0b57cec5SDimitry Andric TMP_MAX 28*0b57cec5SDimitry Andric _IOFBF 29*0b57cec5SDimitry Andric _IOLBF 30*0b57cec5SDimitry Andric _IONBF 31*0b57cec5SDimitry Andric stderr 32*0b57cec5SDimitry Andric stdin 33*0b57cec5SDimitry Andric stdout 34*0b57cec5SDimitry Andric 35*0b57cec5SDimitry Andricnamespace std 36*0b57cec5SDimitry Andric{ 37*0b57cec5SDimitry Andric 38*0b57cec5SDimitry AndricTypes: 39*0b57cec5SDimitry Andric 40*0b57cec5SDimitry AndricFILE 41*0b57cec5SDimitry Andricfpos_t 42*0b57cec5SDimitry Andricsize_t 43*0b57cec5SDimitry Andric 44*0b57cec5SDimitry Andricint remove(const char* filename); 45*0b57cec5SDimitry Andricint rename(const char* old, const char* new); 46*0b57cec5SDimitry AndricFILE* tmpfile(void); 47*0b57cec5SDimitry Andricchar* tmpnam(char* s); 48*0b57cec5SDimitry Andricint fclose(FILE* stream); 49*0b57cec5SDimitry Andricint fflush(FILE* stream); 50*0b57cec5SDimitry AndricFILE* fopen(const char* restrict filename, const char* restrict mode); 51*0b57cec5SDimitry AndricFILE* freopen(const char* restrict filename, const char * restrict mode, 52*0b57cec5SDimitry Andric FILE * restrict stream); 53*0b57cec5SDimitry Andricvoid setbuf(FILE* restrict stream, char* restrict buf); 54*0b57cec5SDimitry Andricint setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size); 55*0b57cec5SDimitry Andricint fprintf(FILE* restrict stream, const char* restrict format, ...); 56*0b57cec5SDimitry Andricint fscanf(FILE* restrict stream, const char * restrict format, ...); 57*0b57cec5SDimitry Andricint printf(const char* restrict format, ...); 58*0b57cec5SDimitry Andricint scanf(const char* restrict format, ...); 59*0b57cec5SDimitry Andricint snprintf(char* restrict s, size_t n, const char* restrict format, ...); // C99 60*0b57cec5SDimitry Andricint sprintf(char* restrict s, const char* restrict format, ...); 61*0b57cec5SDimitry Andricint sscanf(const char* restrict s, const char* restrict format, ...); 62*0b57cec5SDimitry Andricint vfprintf(FILE* restrict stream, const char* restrict format, va_list arg); 63*0b57cec5SDimitry Andricint vfscanf(FILE* restrict stream, const char* restrict format, va_list arg); // C99 64*0b57cec5SDimitry Andricint vprintf(const char* restrict format, va_list arg); 65*0b57cec5SDimitry Andricint vscanf(const char* restrict format, va_list arg); // C99 66*0b57cec5SDimitry Andricint vsnprintf(char* restrict s, size_t n, const char* restrict format, // C99 67*0b57cec5SDimitry Andric va_list arg); 68*0b57cec5SDimitry Andricint vsprintf(char* restrict s, const char* restrict format, va_list arg); 69*0b57cec5SDimitry Andricint vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99 70*0b57cec5SDimitry Andricint fgetc(FILE* stream); 71*0b57cec5SDimitry Andricchar* fgets(char* restrict s, int n, FILE* restrict stream); 72*0b57cec5SDimitry Andricint fputc(int c, FILE* stream); 73*0b57cec5SDimitry Andricint fputs(const char* restrict s, FILE* restrict stream); 74*0b57cec5SDimitry Andricint getc(FILE* stream); 75*0b57cec5SDimitry Andricint getchar(void); 76*0b57cec5SDimitry Andricchar* gets(char* s); // removed in C++14 77*0b57cec5SDimitry Andricint putc(int c, FILE* stream); 78*0b57cec5SDimitry Andricint putchar(int c); 79*0b57cec5SDimitry Andricint puts(const char* s); 80*0b57cec5SDimitry Andricint ungetc(int c, FILE* stream); 81*0b57cec5SDimitry Andricsize_t fread(void* restrict ptr, size_t size, size_t nmemb, 82*0b57cec5SDimitry Andric FILE* restrict stream); 83*0b57cec5SDimitry Andricsize_t fwrite(const void* restrict ptr, size_t size, size_t nmemb, 84*0b57cec5SDimitry Andric FILE* restrict stream); 85*0b57cec5SDimitry Andricint fgetpos(FILE* restrict stream, fpos_t* restrict pos); 86*0b57cec5SDimitry Andricint fseek(FILE* stream, long offset, int whence); 87*0b57cec5SDimitry Andricint fsetpos(FILE*stream, const fpos_t* pos); 88*0b57cec5SDimitry Andriclong ftell(FILE* stream); 89*0b57cec5SDimitry Andricvoid rewind(FILE* stream); 90*0b57cec5SDimitry Andricvoid clearerr(FILE* stream); 91*0b57cec5SDimitry Andricint feof(FILE* stream); 92*0b57cec5SDimitry Andricint ferror(FILE* stream); 93*0b57cec5SDimitry Andricvoid perror(const char* s); 94*0b57cec5SDimitry Andric 95*0b57cec5SDimitry Andric} // std 96*0b57cec5SDimitry Andric*/ 97*0b57cec5SDimitry Andric 98*0b57cec5SDimitry Andric#include <__config> 99*0b57cec5SDimitry Andric#include <stdio.h> 100*0b57cec5SDimitry Andric 101*0b57cec5SDimitry Andric#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 102*0b57cec5SDimitry Andric#pragma GCC system_header 103*0b57cec5SDimitry Andric#endif 104*0b57cec5SDimitry Andric 105*0b57cec5SDimitry Andric_LIBCPP_BEGIN_NAMESPACE_STD 106*0b57cec5SDimitry Andric 107*0b57cec5SDimitry Andricusing ::FILE; 108*0b57cec5SDimitry Andricusing ::fpos_t; 109*0b57cec5SDimitry Andricusing ::size_t; 110*0b57cec5SDimitry Andric 111*0b57cec5SDimitry Andricusing ::fclose; 112*0b57cec5SDimitry Andricusing ::fflush; 113*0b57cec5SDimitry Andricusing ::setbuf; 114*0b57cec5SDimitry Andricusing ::setvbuf; 115*0b57cec5SDimitry Andricusing ::fprintf; 116*0b57cec5SDimitry Andricusing ::fscanf; 117*0b57cec5SDimitry Andricusing ::snprintf; 118*0b57cec5SDimitry Andricusing ::sprintf; 119*0b57cec5SDimitry Andricusing ::sscanf; 120*0b57cec5SDimitry Andricusing ::vfprintf; 121*0b57cec5SDimitry Andricusing ::vfscanf; 122*0b57cec5SDimitry Andricusing ::vsscanf; 123*0b57cec5SDimitry Andricusing ::vsnprintf; 124*0b57cec5SDimitry Andricusing ::vsprintf; 125*0b57cec5SDimitry Andricusing ::fgetc; 126*0b57cec5SDimitry Andricusing ::fgets; 127*0b57cec5SDimitry Andricusing ::fputc; 128*0b57cec5SDimitry Andricusing ::fputs; 129*0b57cec5SDimitry Andricusing ::getc; 130*0b57cec5SDimitry Andricusing ::putc; 131*0b57cec5SDimitry Andricusing ::ungetc; 132*0b57cec5SDimitry Andricusing ::fread; 133*0b57cec5SDimitry Andricusing ::fwrite; 134*0b57cec5SDimitry Andricusing ::fgetpos; 135*0b57cec5SDimitry Andricusing ::fseek; 136*0b57cec5SDimitry Andricusing ::fsetpos; 137*0b57cec5SDimitry Andricusing ::ftell; 138*0b57cec5SDimitry Andricusing ::rewind; 139*0b57cec5SDimitry Andricusing ::clearerr; 140*0b57cec5SDimitry Andricusing ::feof; 141*0b57cec5SDimitry Andricusing ::ferror; 142*0b57cec5SDimitry Andricusing ::perror; 143*0b57cec5SDimitry Andric 144*0b57cec5SDimitry Andric#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE 145*0b57cec5SDimitry Andricusing ::fopen; 146*0b57cec5SDimitry Andricusing ::freopen; 147*0b57cec5SDimitry Andricusing ::remove; 148*0b57cec5SDimitry Andricusing ::rename; 149*0b57cec5SDimitry Andricusing ::tmpfile; 150*0b57cec5SDimitry Andricusing ::tmpnam; 151*0b57cec5SDimitry Andric#endif 152*0b57cec5SDimitry Andric 153*0b57cec5SDimitry Andric#ifndef _LIBCPP_HAS_NO_STDIN 154*0b57cec5SDimitry Andricusing ::getchar; 155*0b57cec5SDimitry Andric#if _LIBCPP_STD_VER <= 11 && !defined(_LIBCPP_C_HAS_NO_GETS) 156*0b57cec5SDimitry Andricusing ::gets; 157*0b57cec5SDimitry Andric#endif 158*0b57cec5SDimitry Andricusing ::scanf; 159*0b57cec5SDimitry Andricusing ::vscanf; 160*0b57cec5SDimitry Andric#endif 161*0b57cec5SDimitry Andric 162*0b57cec5SDimitry Andric#ifndef _LIBCPP_HAS_NO_STDOUT 163*0b57cec5SDimitry Andricusing ::printf; 164*0b57cec5SDimitry Andricusing ::putchar; 165*0b57cec5SDimitry Andricusing ::puts; 166*0b57cec5SDimitry Andricusing ::vprintf; 167*0b57cec5SDimitry Andric#endif 168*0b57cec5SDimitry Andric 169*0b57cec5SDimitry Andric_LIBCPP_END_NAMESPACE_STD 170*0b57cec5SDimitry Andric 171*0b57cec5SDimitry Andric#endif // _LIBCPP_CSTDIO 172