1*e4b17023SJohn Marino// -*- C++ -*- forwarding header. 2*e4b17023SJohn Marino 3*e4b17023SJohn Marino// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 4*e4b17023SJohn Marino// 2009, 2010, 2012 Free Software Foundation, Inc. 5*e4b17023SJohn Marino// 6*e4b17023SJohn Marino// This file is part of the GNU ISO C++ Library. This library is free 7*e4b17023SJohn Marino// software; you can redistribute it and/or modify it under the 8*e4b17023SJohn Marino// terms of the GNU General Public License as published by the 9*e4b17023SJohn Marino// Free Software Foundation; either version 3, or (at your option) 10*e4b17023SJohn Marino// any later version. 11*e4b17023SJohn Marino 12*e4b17023SJohn Marino// This library is distributed in the hope that it will be useful, 13*e4b17023SJohn Marino// but WITHOUT ANY WARRANTY; without even the implied warranty of 14*e4b17023SJohn Marino// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*e4b17023SJohn Marino// GNU General Public License for more details. 16*e4b17023SJohn Marino 17*e4b17023SJohn Marino// Under Section 7 of GPL version 3, you are granted additional 18*e4b17023SJohn Marino// permissions described in the GCC Runtime Library Exception, version 19*e4b17023SJohn Marino// 3.1, as published by the Free Software Foundation. 20*e4b17023SJohn Marino 21*e4b17023SJohn Marino// You should have received a copy of the GNU General Public License and 22*e4b17023SJohn Marino// a copy of the GCC Runtime Library Exception along with this program; 23*e4b17023SJohn Marino// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24*e4b17023SJohn Marino// <http://www.gnu.org/licenses/>. 25*e4b17023SJohn Marino 26*e4b17023SJohn Marino/** @file include/cstdio 27*e4b17023SJohn Marino * This is a Standard C++ Library file. You should @c #include this file 28*e4b17023SJohn Marino * in your programs, rather than any of the @a *.h implementation files. 29*e4b17023SJohn Marino * 30*e4b17023SJohn Marino * This is the C++ version of the Standard C Library header @c stdio.h, 31*e4b17023SJohn Marino * and its contents are (mostly) the same as that header, but are all 32*e4b17023SJohn Marino * contained in the namespace @c std (except for names which are defined 33*e4b17023SJohn Marino * as macros in C). 34*e4b17023SJohn Marino */ 35*e4b17023SJohn Marino 36*e4b17023SJohn Marino// 37*e4b17023SJohn Marino// ISO C++ 14882: 27.8.2 C Library files 38*e4b17023SJohn Marino// 39*e4b17023SJohn Marino 40*e4b17023SJohn Marino#ifndef _GLIBCXX_CSTDIO 41*e4b17023SJohn Marino#define _GLIBCXX_CSTDIO 1 42*e4b17023SJohn Marino 43*e4b17023SJohn Marino#pragma GCC system_header 44*e4b17023SJohn Marino 45*e4b17023SJohn Marino#include <bits/c++config.h> 46*e4b17023SJohn Marino#include <stdio.h> 47*e4b17023SJohn Marino 48*e4b17023SJohn Marino#ifndef _GLIBCXX_HAVE_GETS 49*e4b17023SJohn Marinoextern "C" char* gets (char* __s) __attribute__((deprecated)); 50*e4b17023SJohn Marino#endif 51*e4b17023SJohn Marino 52*e4b17023SJohn Marino// Get rid of those macros defined in <stdio.h> in lieu of real functions. 53*e4b17023SJohn Marino#undef clearerr 54*e4b17023SJohn Marino#undef fclose 55*e4b17023SJohn Marino#undef feof 56*e4b17023SJohn Marino#undef ferror 57*e4b17023SJohn Marino#undef fflush 58*e4b17023SJohn Marino#undef fgetc 59*e4b17023SJohn Marino#undef fgetpos 60*e4b17023SJohn Marino#undef fgets 61*e4b17023SJohn Marino#undef fopen 62*e4b17023SJohn Marino#undef fprintf 63*e4b17023SJohn Marino#undef fputc 64*e4b17023SJohn Marino#undef fputs 65*e4b17023SJohn Marino#undef fread 66*e4b17023SJohn Marino#undef freopen 67*e4b17023SJohn Marino#undef fscanf 68*e4b17023SJohn Marino#undef fseek 69*e4b17023SJohn Marino#undef fsetpos 70*e4b17023SJohn Marino#undef ftell 71*e4b17023SJohn Marino#undef fwrite 72*e4b17023SJohn Marino#undef getc 73*e4b17023SJohn Marino#undef getchar 74*e4b17023SJohn Marino#undef gets 75*e4b17023SJohn Marino#undef perror 76*e4b17023SJohn Marino#undef printf 77*e4b17023SJohn Marino#undef putc 78*e4b17023SJohn Marino#undef putchar 79*e4b17023SJohn Marino#undef puts 80*e4b17023SJohn Marino#undef remove 81*e4b17023SJohn Marino#undef rename 82*e4b17023SJohn Marino#undef rewind 83*e4b17023SJohn Marino#undef scanf 84*e4b17023SJohn Marino#undef setbuf 85*e4b17023SJohn Marino#undef setvbuf 86*e4b17023SJohn Marino#undef sprintf 87*e4b17023SJohn Marino#undef sscanf 88*e4b17023SJohn Marino#undef tmpfile 89*e4b17023SJohn Marino#undef tmpnam 90*e4b17023SJohn Marino#undef ungetc 91*e4b17023SJohn Marino#undef vfprintf 92*e4b17023SJohn Marino#undef vprintf 93*e4b17023SJohn Marino#undef vsprintf 94*e4b17023SJohn Marino 95*e4b17023SJohn Marinonamespace std 96*e4b17023SJohn Marino{ 97*e4b17023SJohn Marino using ::FILE; 98*e4b17023SJohn Marino using ::fpos_t; 99*e4b17023SJohn Marino 100*e4b17023SJohn Marino using ::clearerr; 101*e4b17023SJohn Marino using ::fclose; 102*e4b17023SJohn Marino using ::feof; 103*e4b17023SJohn Marino using ::ferror; 104*e4b17023SJohn Marino using ::fflush; 105*e4b17023SJohn Marino using ::fgetc; 106*e4b17023SJohn Marino using ::fgetpos; 107*e4b17023SJohn Marino using ::fgets; 108*e4b17023SJohn Marino using ::fopen; 109*e4b17023SJohn Marino using ::fprintf; 110*e4b17023SJohn Marino using ::fputc; 111*e4b17023SJohn Marino using ::fputs; 112*e4b17023SJohn Marino using ::fread; 113*e4b17023SJohn Marino using ::freopen; 114*e4b17023SJohn Marino using ::fscanf; 115*e4b17023SJohn Marino using ::fseek; 116*e4b17023SJohn Marino using ::fsetpos; 117*e4b17023SJohn Marino using ::ftell; 118*e4b17023SJohn Marino using ::fwrite; 119*e4b17023SJohn Marino using ::getc; 120*e4b17023SJohn Marino using ::getchar; 121*e4b17023SJohn Marino using ::gets; 122*e4b17023SJohn Marino using ::perror; 123*e4b17023SJohn Marino using ::printf; 124*e4b17023SJohn Marino using ::putc; 125*e4b17023SJohn Marino using ::putchar; 126*e4b17023SJohn Marino using ::puts; 127*e4b17023SJohn Marino using ::remove; 128*e4b17023SJohn Marino using ::rename; 129*e4b17023SJohn Marino using ::rewind; 130*e4b17023SJohn Marino using ::scanf; 131*e4b17023SJohn Marino using ::setbuf; 132*e4b17023SJohn Marino using ::setvbuf; 133*e4b17023SJohn Marino using ::sprintf; 134*e4b17023SJohn Marino using ::sscanf; 135*e4b17023SJohn Marino using ::tmpfile; 136*e4b17023SJohn Marino using ::tmpnam; 137*e4b17023SJohn Marino using ::ungetc; 138*e4b17023SJohn Marino using ::vfprintf; 139*e4b17023SJohn Marino using ::vprintf; 140*e4b17023SJohn Marino using ::vsprintf; 141*e4b17023SJohn Marino} // namespace std 142*e4b17023SJohn Marino 143*e4b17023SJohn Marino#if _GLIBCXX_USE_C99 144*e4b17023SJohn Marino 145*e4b17023SJohn Marino#undef snprintf 146*e4b17023SJohn Marino#undef vfscanf 147*e4b17023SJohn Marino#undef vscanf 148*e4b17023SJohn Marino#undef vsnprintf 149*e4b17023SJohn Marino#undef vsscanf 150*e4b17023SJohn Marino 151*e4b17023SJohn Marinonamespace __gnu_cxx 152*e4b17023SJohn Marino{ 153*e4b17023SJohn Marino#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC 154*e4b17023SJohn Marino extern "C" int 155*e4b17023SJohn Marino (snprintf)(char * __restrict, std::size_t, const char * __restrict, ...) 156*e4b17023SJohn Marino throw (); 157*e4b17023SJohn Marino extern "C" int 158*e4b17023SJohn Marino (vfscanf)(FILE * __restrict, const char * __restrict, __gnuc_va_list); 159*e4b17023SJohn Marino extern "C" int (vscanf)(const char * __restrict, __gnuc_va_list); 160*e4b17023SJohn Marino extern "C" int 161*e4b17023SJohn Marino (vsnprintf)(char * __restrict, std::size_t, const char * __restrict, 162*e4b17023SJohn Marino __gnuc_va_list) throw (); 163*e4b17023SJohn Marino extern "C" int 164*e4b17023SJohn Marino (vsscanf)(const char * __restrict, const char * __restrict, __gnuc_va_list) 165*e4b17023SJohn Marino throw (); 166*e4b17023SJohn Marino#endif 167*e4b17023SJohn Marino 168*e4b17023SJohn Marino#if !_GLIBCXX_USE_C99_DYNAMIC 169*e4b17023SJohn Marino using ::snprintf; 170*e4b17023SJohn Marino using ::vfscanf; 171*e4b17023SJohn Marino using ::vscanf; 172*e4b17023SJohn Marino using ::vsnprintf; 173*e4b17023SJohn Marino using ::vsscanf; 174*e4b17023SJohn Marino#endif 175*e4b17023SJohn Marino} // namespace __gnu_cxx 176*e4b17023SJohn Marino 177*e4b17023SJohn Marinonamespace std 178*e4b17023SJohn Marino{ 179*e4b17023SJohn Marino using ::__gnu_cxx::snprintf; 180*e4b17023SJohn Marino using ::__gnu_cxx::vfscanf; 181*e4b17023SJohn Marino using ::__gnu_cxx::vscanf; 182*e4b17023SJohn Marino using ::__gnu_cxx::vsnprintf; 183*e4b17023SJohn Marino using ::__gnu_cxx::vsscanf; 184*e4b17023SJohn Marino} // namespace std 185*e4b17023SJohn Marino 186*e4b17023SJohn Marino#endif 187*e4b17023SJohn Marino 188*e4b17023SJohn Marino#endif 189