13e519524SHoward Hinnant// -*- C++ -*- 2eb8650a7SLouis Dionne//===----------------------------------------------------------------------===// 33e519524SHoward Hinnant// 457b08b09SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 557b08b09SChandler Carruth// See https://llvm.org/LICENSE.txt for license information. 657b08b09SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 73e519524SHoward Hinnant// 83e519524SHoward Hinnant//===----------------------------------------------------------------------===// 93e519524SHoward Hinnant 103e519524SHoward Hinnant#ifndef _LIBCPP_CSTDIO 113e519524SHoward Hinnant#define _LIBCPP_CSTDIO 123e519524SHoward Hinnant 133e519524SHoward Hinnant/* 143e519524SHoward Hinnant cstdio synopsis 153e519524SHoward Hinnant 163e519524SHoward HinnantMacros: 173e519524SHoward Hinnant 183e519524SHoward Hinnant BUFSIZ 193e519524SHoward Hinnant EOF 203e519524SHoward Hinnant FILENAME_MAX 213e519524SHoward Hinnant FOPEN_MAX 223e519524SHoward Hinnant L_tmpnam 233e519524SHoward Hinnant NULL 243e519524SHoward Hinnant SEEK_CUR 253e519524SHoward Hinnant SEEK_END 263e519524SHoward Hinnant SEEK_SET 273e519524SHoward Hinnant TMP_MAX 283e519524SHoward Hinnant _IOFBF 293e519524SHoward Hinnant _IOLBF 303e519524SHoward Hinnant _IONBF 313e519524SHoward Hinnant stderr 323e519524SHoward Hinnant stdin 333e519524SHoward Hinnant stdout 343e519524SHoward Hinnant 353e519524SHoward Hinnantnamespace std 363e519524SHoward Hinnant{ 373e519524SHoward Hinnant 383e519524SHoward HinnantTypes: 393e519524SHoward Hinnant 403e519524SHoward HinnantFILE 413e519524SHoward Hinnantfpos_t 423e519524SHoward Hinnantsize_t 433e519524SHoward Hinnant 443e519524SHoward Hinnantint remove(const char* filename); 453e519524SHoward Hinnantint rename(const char* old, const char* new); 463e519524SHoward HinnantFILE* tmpfile(void); 473e519524SHoward Hinnantchar* tmpnam(char* s); 483e519524SHoward Hinnantint fclose(FILE* stream); 493e519524SHoward Hinnantint fflush(FILE* stream); 503e519524SHoward HinnantFILE* fopen(const char* restrict filename, const char* restrict mode); 513e519524SHoward HinnantFILE* freopen(const char* restrict filename, const char * restrict mode, 523e519524SHoward Hinnant FILE * restrict stream); 533e519524SHoward Hinnantvoid setbuf(FILE* restrict stream, char* restrict buf); 543e519524SHoward Hinnantint setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size); 553e519524SHoward Hinnantint fprintf(FILE* restrict stream, const char* restrict format, ...); 563e519524SHoward Hinnantint fscanf(FILE* restrict stream, const char * restrict format, ...); 573e519524SHoward Hinnantint printf(const char* restrict format, ...); 583e519524SHoward Hinnantint scanf(const char* restrict format, ...); 593e519524SHoward Hinnantint snprintf(char* restrict s, size_t n, const char* restrict format, ...); // C99 603e519524SHoward Hinnantint sprintf(char* restrict s, const char* restrict format, ...); 613e519524SHoward Hinnantint sscanf(const char* restrict s, const char* restrict format, ...); 623e519524SHoward Hinnantint vfprintf(FILE* restrict stream, const char* restrict format, va_list arg); 633e519524SHoward Hinnantint vfscanf(FILE* restrict stream, const char* restrict format, va_list arg); // C99 643e519524SHoward Hinnantint vprintf(const char* restrict format, va_list arg); 653e519524SHoward Hinnantint vscanf(const char* restrict format, va_list arg); // C99 663e519524SHoward Hinnantint vsnprintf(char* restrict s, size_t n, const char* restrict format, // C99 673e519524SHoward Hinnant va_list arg); 683e519524SHoward Hinnantint vsprintf(char* restrict s, const char* restrict format, va_list arg); 693e519524SHoward Hinnantint vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99 703e519524SHoward Hinnantint fgetc(FILE* stream); 713e519524SHoward Hinnantchar* fgets(char* restrict s, int n, FILE* restrict stream); 723e519524SHoward Hinnantint fputc(int c, FILE* stream); 733e519524SHoward Hinnantint fputs(const char* restrict s, FILE* restrict stream); 743e519524SHoward Hinnantint getc(FILE* stream); 753e519524SHoward Hinnantint getchar(void); 768de32cb3SMarshall Clowchar* gets(char* s); // removed in C++14 773e519524SHoward Hinnantint putc(int c, FILE* stream); 783e519524SHoward Hinnantint putchar(int c); 793e519524SHoward Hinnantint puts(const char* s); 803e519524SHoward Hinnantint ungetc(int c, FILE* stream); 813e519524SHoward Hinnantsize_t fread(void* restrict ptr, size_t size, size_t nmemb, 823e519524SHoward Hinnant FILE* restrict stream); 833e519524SHoward Hinnantsize_t fwrite(const void* restrict ptr, size_t size, size_t nmemb, 843e519524SHoward Hinnant FILE* restrict stream); 853e519524SHoward Hinnantint fgetpos(FILE* restrict stream, fpos_t* restrict pos); 863e519524SHoward Hinnantint fseek(FILE* stream, long offset, int whence); 873e519524SHoward Hinnantint fsetpos(FILE*stream, const fpos_t* pos); 883e519524SHoward Hinnantlong ftell(FILE* stream); 893e519524SHoward Hinnantvoid rewind(FILE* stream); 903e519524SHoward Hinnantvoid clearerr(FILE* stream); 913e519524SHoward Hinnantint feof(FILE* stream); 923e519524SHoward Hinnantint ferror(FILE* stream); 933e519524SHoward Hinnantvoid perror(const char* s); 943e519524SHoward Hinnant 953e519524SHoward Hinnant} // std 963e519524SHoward Hinnant*/ 973e519524SHoward Hinnant 98*385cc25aSLouis Dionne#include <__assert> // all public C++ headers provide the assertion handler 993e519524SHoward Hinnant#include <__config> 1003e519524SHoward Hinnant#include <stdio.h> 1013e519524SHoward Hinnant 102073458b1SHoward Hinnant#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 1033e519524SHoward Hinnant# pragma GCC system_header 104073458b1SHoward Hinnant#endif 1053e519524SHoward Hinnant 1063e519524SHoward Hinnant_LIBCPP_BEGIN_NAMESPACE_STD 1073e519524SHoward Hinnant 108a9c9183cSLouis Dionneusing ::FILE _LIBCPP_USING_IF_EXISTS; 109a9c9183cSLouis Dionneusing ::fpos_t _LIBCPP_USING_IF_EXISTS; 110a9c9183cSLouis Dionneusing ::size_t _LIBCPP_USING_IF_EXISTS; 1113e519524SHoward Hinnant 112a9c9183cSLouis Dionneusing ::fclose _LIBCPP_USING_IF_EXISTS; 113a9c9183cSLouis Dionneusing ::fflush _LIBCPP_USING_IF_EXISTS; 114a9c9183cSLouis Dionneusing ::setbuf _LIBCPP_USING_IF_EXISTS; 115a9c9183cSLouis Dionneusing ::setvbuf _LIBCPP_USING_IF_EXISTS; 116a9c9183cSLouis Dionneusing ::fprintf _LIBCPP_USING_IF_EXISTS; 117a9c9183cSLouis Dionneusing ::fscanf _LIBCPP_USING_IF_EXISTS; 118a9c9183cSLouis Dionneusing ::snprintf _LIBCPP_USING_IF_EXISTS; 119a9c9183cSLouis Dionneusing ::sprintf _LIBCPP_USING_IF_EXISTS; 120a9c9183cSLouis Dionneusing ::sscanf _LIBCPP_USING_IF_EXISTS; 121a9c9183cSLouis Dionneusing ::vfprintf _LIBCPP_USING_IF_EXISTS; 122a9c9183cSLouis Dionneusing ::vfscanf _LIBCPP_USING_IF_EXISTS; 123a9c9183cSLouis Dionneusing ::vsscanf _LIBCPP_USING_IF_EXISTS; 124a9c9183cSLouis Dionneusing ::vsnprintf _LIBCPP_USING_IF_EXISTS; 125a9c9183cSLouis Dionneusing ::vsprintf _LIBCPP_USING_IF_EXISTS; 126a9c9183cSLouis Dionneusing ::fgetc _LIBCPP_USING_IF_EXISTS; 127a9c9183cSLouis Dionneusing ::fgets _LIBCPP_USING_IF_EXISTS; 128a9c9183cSLouis Dionneusing ::fputc _LIBCPP_USING_IF_EXISTS; 129a9c9183cSLouis Dionneusing ::fputs _LIBCPP_USING_IF_EXISTS; 130a9c9183cSLouis Dionneusing ::getc _LIBCPP_USING_IF_EXISTS; 131a9c9183cSLouis Dionneusing ::putc _LIBCPP_USING_IF_EXISTS; 132a9c9183cSLouis Dionneusing ::ungetc _LIBCPP_USING_IF_EXISTS; 133a9c9183cSLouis Dionneusing ::fread _LIBCPP_USING_IF_EXISTS; 134a9c9183cSLouis Dionneusing ::fwrite _LIBCPP_USING_IF_EXISTS; 13575c44086SDan Albert#ifndef _LIBCPP_HAS_NO_FGETPOS_FSETPOS 136a9c9183cSLouis Dionneusing ::fgetpos _LIBCPP_USING_IF_EXISTS; 13775c44086SDan Albert#endif 138a9c9183cSLouis Dionneusing ::fseek _LIBCPP_USING_IF_EXISTS; 13975c44086SDan Albert#ifndef _LIBCPP_HAS_NO_FGETPOS_FSETPOS 140a9c9183cSLouis Dionneusing ::fsetpos _LIBCPP_USING_IF_EXISTS; 14175c44086SDan Albert#endif 142a9c9183cSLouis Dionneusing ::ftell _LIBCPP_USING_IF_EXISTS; 143a9c9183cSLouis Dionneusing ::rewind _LIBCPP_USING_IF_EXISTS; 144a9c9183cSLouis Dionneusing ::clearerr _LIBCPP_USING_IF_EXISTS; 145a9c9183cSLouis Dionneusing ::feof _LIBCPP_USING_IF_EXISTS; 146a9c9183cSLouis Dionneusing ::ferror _LIBCPP_USING_IF_EXISTS; 147a9c9183cSLouis Dionneusing ::perror _LIBCPP_USING_IF_EXISTS; 1483e519524SHoward Hinnant 149a9c9183cSLouis Dionneusing ::fopen _LIBCPP_USING_IF_EXISTS; 150a9c9183cSLouis Dionneusing ::freopen _LIBCPP_USING_IF_EXISTS; 151a9c9183cSLouis Dionneusing ::remove _LIBCPP_USING_IF_EXISTS; 152a9c9183cSLouis Dionneusing ::rename _LIBCPP_USING_IF_EXISTS; 153a9c9183cSLouis Dionneusing ::tmpfile _LIBCPP_USING_IF_EXISTS; 154a9c9183cSLouis Dionneusing ::tmpnam _LIBCPP_USING_IF_EXISTS; 155f4ac884fSEd Schouten 156a9c9183cSLouis Dionneusing ::getchar _LIBCPP_USING_IF_EXISTS; 1575bd4a480SDimitry Andric#if _LIBCPP_STD_VER <= 11 && !defined(_LIBCPP_C_HAS_NO_GETS) 158a9c9183cSLouis Dionneusing ::gets _LIBCPP_USING_IF_EXISTS; 159f4ac884fSEd Schouten#endif 160a9c9183cSLouis Dionneusing ::scanf _LIBCPP_USING_IF_EXISTS; 161a9c9183cSLouis Dionneusing ::vscanf _LIBCPP_USING_IF_EXISTS; 162f4ac884fSEd Schouten 163a9c9183cSLouis Dionneusing ::printf _LIBCPP_USING_IF_EXISTS; 164a9c9183cSLouis Dionneusing ::putchar _LIBCPP_USING_IF_EXISTS; 165a9c9183cSLouis Dionneusing ::puts _LIBCPP_USING_IF_EXISTS; 166a9c9183cSLouis Dionneusing ::vprintf _LIBCPP_USING_IF_EXISTS; 167f4ac884fSEd Schouten 1683e519524SHoward Hinnant_LIBCPP_END_NAMESPACE_STD 1693e519524SHoward Hinnant 1703e519524SHoward Hinnant#endif // _LIBCPP_CSTDIO 171