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