10b57cec5SDimitry Andric// -*- C++ -*- 20b57cec5SDimitry Andric//===---------------------------- cstdio ----------------------------------===// 30b57cec5SDimitry Andric// 40b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 50b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 60b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 70b57cec5SDimitry Andric// 80b57cec5SDimitry Andric//===----------------------------------------------------------------------===// 90b57cec5SDimitry Andric 100b57cec5SDimitry Andric#ifndef _LIBCPP_CSTDIO 110b57cec5SDimitry Andric#define _LIBCPP_CSTDIO 120b57cec5SDimitry Andric 130b57cec5SDimitry Andric/* 140b57cec5SDimitry Andric cstdio synopsis 150b57cec5SDimitry Andric 160b57cec5SDimitry AndricMacros: 170b57cec5SDimitry Andric 180b57cec5SDimitry Andric BUFSIZ 190b57cec5SDimitry Andric EOF 200b57cec5SDimitry Andric FILENAME_MAX 210b57cec5SDimitry Andric FOPEN_MAX 220b57cec5SDimitry Andric L_tmpnam 230b57cec5SDimitry Andric NULL 240b57cec5SDimitry Andric SEEK_CUR 250b57cec5SDimitry Andric SEEK_END 260b57cec5SDimitry Andric SEEK_SET 270b57cec5SDimitry Andric TMP_MAX 280b57cec5SDimitry Andric _IOFBF 290b57cec5SDimitry Andric _IOLBF 300b57cec5SDimitry Andric _IONBF 310b57cec5SDimitry Andric stderr 320b57cec5SDimitry Andric stdin 330b57cec5SDimitry Andric stdout 340b57cec5SDimitry Andric 350b57cec5SDimitry Andricnamespace std 360b57cec5SDimitry Andric{ 370b57cec5SDimitry Andric 380b57cec5SDimitry AndricTypes: 390b57cec5SDimitry Andric 400b57cec5SDimitry AndricFILE 410b57cec5SDimitry Andricfpos_t 420b57cec5SDimitry Andricsize_t 430b57cec5SDimitry Andric 440b57cec5SDimitry Andricint remove(const char* filename); 450b57cec5SDimitry Andricint rename(const char* old, const char* new); 460b57cec5SDimitry AndricFILE* tmpfile(void); 470b57cec5SDimitry Andricchar* tmpnam(char* s); 480b57cec5SDimitry Andricint fclose(FILE* stream); 490b57cec5SDimitry Andricint fflush(FILE* stream); 500b57cec5SDimitry AndricFILE* fopen(const char* restrict filename, const char* restrict mode); 510b57cec5SDimitry AndricFILE* freopen(const char* restrict filename, const char * restrict mode, 520b57cec5SDimitry Andric FILE * restrict stream); 530b57cec5SDimitry Andricvoid setbuf(FILE* restrict stream, char* restrict buf); 540b57cec5SDimitry Andricint setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size); 550b57cec5SDimitry Andricint fprintf(FILE* restrict stream, const char* restrict format, ...); 560b57cec5SDimitry Andricint fscanf(FILE* restrict stream, const char * restrict format, ...); 570b57cec5SDimitry Andricint printf(const char* restrict format, ...); 580b57cec5SDimitry Andricint scanf(const char* restrict format, ...); 590b57cec5SDimitry Andricint snprintf(char* restrict s, size_t n, const char* restrict format, ...); // C99 600b57cec5SDimitry Andricint sprintf(char* restrict s, const char* restrict format, ...); 610b57cec5SDimitry Andricint sscanf(const char* restrict s, const char* restrict format, ...); 620b57cec5SDimitry Andricint vfprintf(FILE* restrict stream, const char* restrict format, va_list arg); 630b57cec5SDimitry Andricint vfscanf(FILE* restrict stream, const char* restrict format, va_list arg); // C99 640b57cec5SDimitry Andricint vprintf(const char* restrict format, va_list arg); 650b57cec5SDimitry Andricint vscanf(const char* restrict format, va_list arg); // C99 660b57cec5SDimitry Andricint vsnprintf(char* restrict s, size_t n, const char* restrict format, // C99 670b57cec5SDimitry Andric va_list arg); 680b57cec5SDimitry Andricint vsprintf(char* restrict s, const char* restrict format, va_list arg); 690b57cec5SDimitry Andricint vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99 700b57cec5SDimitry Andricint fgetc(FILE* stream); 710b57cec5SDimitry Andricchar* fgets(char* restrict s, int n, FILE* restrict stream); 720b57cec5SDimitry Andricint fputc(int c, FILE* stream); 730b57cec5SDimitry Andricint fputs(const char* restrict s, FILE* restrict stream); 740b57cec5SDimitry Andricint getc(FILE* stream); 750b57cec5SDimitry Andricint getchar(void); 760b57cec5SDimitry Andricchar* gets(char* s); // removed in C++14 770b57cec5SDimitry Andricint putc(int c, FILE* stream); 780b57cec5SDimitry Andricint putchar(int c); 790b57cec5SDimitry Andricint puts(const char* s); 800b57cec5SDimitry Andricint ungetc(int c, FILE* stream); 810b57cec5SDimitry Andricsize_t fread(void* restrict ptr, size_t size, size_t nmemb, 820b57cec5SDimitry Andric FILE* restrict stream); 830b57cec5SDimitry Andricsize_t fwrite(const void* restrict ptr, size_t size, size_t nmemb, 840b57cec5SDimitry Andric FILE* restrict stream); 850b57cec5SDimitry Andricint fgetpos(FILE* restrict stream, fpos_t* restrict pos); 860b57cec5SDimitry Andricint fseek(FILE* stream, long offset, int whence); 870b57cec5SDimitry Andricint fsetpos(FILE*stream, const fpos_t* pos); 880b57cec5SDimitry Andriclong ftell(FILE* stream); 890b57cec5SDimitry Andricvoid rewind(FILE* stream); 900b57cec5SDimitry Andricvoid clearerr(FILE* stream); 910b57cec5SDimitry Andricint feof(FILE* stream); 920b57cec5SDimitry Andricint ferror(FILE* stream); 930b57cec5SDimitry Andricvoid perror(const char* s); 940b57cec5SDimitry Andric 950b57cec5SDimitry Andric} // std 960b57cec5SDimitry Andric*/ 970b57cec5SDimitry Andric 980b57cec5SDimitry Andric#include <__config> 990b57cec5SDimitry Andric#include <stdio.h> 1000b57cec5SDimitry Andric 1010b57cec5SDimitry Andric#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 1020b57cec5SDimitry Andric#pragma GCC system_header 1030b57cec5SDimitry Andric#endif 1040b57cec5SDimitry Andric 1050b57cec5SDimitry Andric_LIBCPP_BEGIN_NAMESPACE_STD 1060b57cec5SDimitry Andric 107*fe6060f1SDimitry Andricusing ::FILE _LIBCPP_USING_IF_EXISTS; 108*fe6060f1SDimitry Andricusing ::fpos_t _LIBCPP_USING_IF_EXISTS; 109*fe6060f1SDimitry Andricusing ::size_t _LIBCPP_USING_IF_EXISTS; 1100b57cec5SDimitry Andric 111*fe6060f1SDimitry Andricusing ::fclose _LIBCPP_USING_IF_EXISTS; 112*fe6060f1SDimitry Andricusing ::fflush _LIBCPP_USING_IF_EXISTS; 113*fe6060f1SDimitry Andricusing ::setbuf _LIBCPP_USING_IF_EXISTS; 114*fe6060f1SDimitry Andricusing ::setvbuf _LIBCPP_USING_IF_EXISTS; 115*fe6060f1SDimitry Andricusing ::fprintf _LIBCPP_USING_IF_EXISTS; 116*fe6060f1SDimitry Andricusing ::fscanf _LIBCPP_USING_IF_EXISTS; 117*fe6060f1SDimitry Andricusing ::snprintf _LIBCPP_USING_IF_EXISTS; 118*fe6060f1SDimitry Andricusing ::sprintf _LIBCPP_USING_IF_EXISTS; 119*fe6060f1SDimitry Andricusing ::sscanf _LIBCPP_USING_IF_EXISTS; 120*fe6060f1SDimitry Andricusing ::vfprintf _LIBCPP_USING_IF_EXISTS; 121*fe6060f1SDimitry Andricusing ::vfscanf _LIBCPP_USING_IF_EXISTS; 122*fe6060f1SDimitry Andricusing ::vsscanf _LIBCPP_USING_IF_EXISTS; 123*fe6060f1SDimitry Andricusing ::vsnprintf _LIBCPP_USING_IF_EXISTS; 124*fe6060f1SDimitry Andricusing ::vsprintf _LIBCPP_USING_IF_EXISTS; 125*fe6060f1SDimitry Andricusing ::fgetc _LIBCPP_USING_IF_EXISTS; 126*fe6060f1SDimitry Andricusing ::fgets _LIBCPP_USING_IF_EXISTS; 127*fe6060f1SDimitry Andricusing ::fputc _LIBCPP_USING_IF_EXISTS; 128*fe6060f1SDimitry Andricusing ::fputs _LIBCPP_USING_IF_EXISTS; 129*fe6060f1SDimitry Andricusing ::getc _LIBCPP_USING_IF_EXISTS; 130*fe6060f1SDimitry Andricusing ::putc _LIBCPP_USING_IF_EXISTS; 131*fe6060f1SDimitry Andricusing ::ungetc _LIBCPP_USING_IF_EXISTS; 132*fe6060f1SDimitry Andricusing ::fread _LIBCPP_USING_IF_EXISTS; 133*fe6060f1SDimitry Andricusing ::fwrite _LIBCPP_USING_IF_EXISTS; 1345ffd83dbSDimitry Andric#ifndef _LIBCPP_HAS_NO_FGETPOS_FSETPOS 135*fe6060f1SDimitry Andricusing ::fgetpos _LIBCPP_USING_IF_EXISTS; 1365ffd83dbSDimitry Andric#endif 137*fe6060f1SDimitry Andricusing ::fseek _LIBCPP_USING_IF_EXISTS; 1385ffd83dbSDimitry Andric#ifndef _LIBCPP_HAS_NO_FGETPOS_FSETPOS 139*fe6060f1SDimitry Andricusing ::fsetpos _LIBCPP_USING_IF_EXISTS; 1405ffd83dbSDimitry Andric#endif 141*fe6060f1SDimitry Andricusing ::ftell _LIBCPP_USING_IF_EXISTS; 142*fe6060f1SDimitry Andricusing ::rewind _LIBCPP_USING_IF_EXISTS; 143*fe6060f1SDimitry Andricusing ::clearerr _LIBCPP_USING_IF_EXISTS; 144*fe6060f1SDimitry Andricusing ::feof _LIBCPP_USING_IF_EXISTS; 145*fe6060f1SDimitry Andricusing ::ferror _LIBCPP_USING_IF_EXISTS; 146*fe6060f1SDimitry Andricusing ::perror _LIBCPP_USING_IF_EXISTS; 1470b57cec5SDimitry Andric 1480b57cec5SDimitry Andric#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE 149*fe6060f1SDimitry Andricusing ::fopen _LIBCPP_USING_IF_EXISTS; 150*fe6060f1SDimitry Andricusing ::freopen _LIBCPP_USING_IF_EXISTS; 151*fe6060f1SDimitry Andricusing ::remove _LIBCPP_USING_IF_EXISTS; 152*fe6060f1SDimitry Andricusing ::rename _LIBCPP_USING_IF_EXISTS; 153*fe6060f1SDimitry Andricusing ::tmpfile _LIBCPP_USING_IF_EXISTS; 154*fe6060f1SDimitry Andricusing ::tmpnam _LIBCPP_USING_IF_EXISTS; 1550b57cec5SDimitry Andric#endif 1560b57cec5SDimitry Andric 1570b57cec5SDimitry Andric#ifndef _LIBCPP_HAS_NO_STDIN 158*fe6060f1SDimitry Andricusing ::getchar _LIBCPP_USING_IF_EXISTS; 1590b57cec5SDimitry Andric#if _LIBCPP_STD_VER <= 11 && !defined(_LIBCPP_C_HAS_NO_GETS) 160*fe6060f1SDimitry Andricusing ::gets _LIBCPP_USING_IF_EXISTS; 1610b57cec5SDimitry Andric#endif 162*fe6060f1SDimitry Andricusing ::scanf _LIBCPP_USING_IF_EXISTS; 163*fe6060f1SDimitry Andricusing ::vscanf _LIBCPP_USING_IF_EXISTS; 1640b57cec5SDimitry Andric#endif 1650b57cec5SDimitry Andric 1660b57cec5SDimitry Andric#ifndef _LIBCPP_HAS_NO_STDOUT 167*fe6060f1SDimitry Andricusing ::printf _LIBCPP_USING_IF_EXISTS; 168*fe6060f1SDimitry Andricusing ::putchar _LIBCPP_USING_IF_EXISTS; 169*fe6060f1SDimitry Andricusing ::puts _LIBCPP_USING_IF_EXISTS; 170*fe6060f1SDimitry Andricusing ::vprintf _LIBCPP_USING_IF_EXISTS; 1710b57cec5SDimitry Andric#endif 1720b57cec5SDimitry Andric 1730b57cec5SDimitry Andric_LIBCPP_END_NAMESPACE_STD 1740b57cec5SDimitry Andric 1750b57cec5SDimitry Andric#endif // _LIBCPP_CSTDIO 176