1404b540aSrobert // -*- C++ -*- forwarding header. 2404b540aSrobert 3404b540aSrobert // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 4404b540aSrobert // Free Software Foundation, Inc. 5404b540aSrobert // 6404b540aSrobert // This file is part of the GNU ISO C++ Library. This library is free 7404b540aSrobert // software; you can redistribute it and/or modify it under the 8404b540aSrobert // terms of the GNU General Public License as published by the 9404b540aSrobert // Free Software Foundation; either version 2, or (at your option) 10404b540aSrobert // any later version. 11404b540aSrobert 12404b540aSrobert // This library is distributed in the hope that it will be useful, 13404b540aSrobert // but WITHOUT ANY WARRANTY; without even the implied warranty of 14404b540aSrobert // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15404b540aSrobert // GNU General Public License for more details. 16404b540aSrobert 17404b540aSrobert // You should have received a copy of the GNU General Public License along 18404b540aSrobert // with this library; see the file COPYING. If not, write to the Free 19404b540aSrobert // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 20404b540aSrobert // USA. 21404b540aSrobert 22404b540aSrobert // As a special exception, you may use this file as part of a free software 23404b540aSrobert // library without restriction. Specifically, if other files instantiate 24404b540aSrobert // templates or use macros or inline functions from this file, or you compile 25404b540aSrobert // this file and link it with other files to produce an executable, this 26404b540aSrobert // file does not by itself cause the resulting executable to be covered by 27404b540aSrobert // the GNU General Public License. This exception does not however 28404b540aSrobert // invalidate any other reasons why the executable file might be covered by 29404b540aSrobert // the GNU General Public License. 30404b540aSrobert 31404b540aSrobert /** @file include/cstdio 32404b540aSrobert * This is a Standard C++ Library file. You should @c #include this file 33404b540aSrobert * in your programs, rather than any of the "*.h" implementation files. 34404b540aSrobert * 35404b540aSrobert * This is the C++ version of the Standard C Library header @c stdio.h, 36404b540aSrobert * and its contents are (mostly) the same as that header, but are all 37404b540aSrobert * contained in the namespace @c std (except for names which are defined 38404b540aSrobert * as macros in C). 39404b540aSrobert */ 40404b540aSrobert 41404b540aSrobert // 42404b540aSrobert // ISO C++ 14882: 27.8.2 C Library files 43404b540aSrobert // 44404b540aSrobert 45404b540aSrobert #ifndef _GLIBCXX_CSTDIO 46404b540aSrobert #define _GLIBCXX_CSTDIO 1 47404b540aSrobert 48404b540aSrobert #pragma GCC system_header 49404b540aSrobert 50404b540aSrobert #include <bits/c++config.h> 51404b540aSrobert #include <cstddef> 52404b540aSrobert 53404b540aSrobert #include <stdio.h> 54404b540aSrobert 55404b540aSrobert // Get rid of those macros defined in <stdio.h> in lieu of real functions. 56404b540aSrobert #undef clearerr 57404b540aSrobert #undef fclose 58404b540aSrobert #undef feof 59404b540aSrobert #undef ferror 60404b540aSrobert #undef fflush 61404b540aSrobert #undef fgetc 62404b540aSrobert #undef fgetpos 63404b540aSrobert #undef fgets 64404b540aSrobert #undef fopen 65404b540aSrobert #undef fprintf 66404b540aSrobert #undef fputc 67404b540aSrobert #undef fputs 68404b540aSrobert #undef fread 69404b540aSrobert #undef freopen 70404b540aSrobert #undef fscanf 71404b540aSrobert #undef fseek 72404b540aSrobert #undef fsetpos 73404b540aSrobert #undef ftell 74404b540aSrobert #undef fwrite 75404b540aSrobert #undef getc 76404b540aSrobert #undef getchar 77404b540aSrobert #undef gets 78404b540aSrobert #undef perror 79404b540aSrobert #undef printf 80404b540aSrobert #undef putc 81404b540aSrobert #undef putchar 82404b540aSrobert #undef puts 83404b540aSrobert #undef remove 84404b540aSrobert #undef rename 85404b540aSrobert #undef rewind 86404b540aSrobert #undef scanf 87404b540aSrobert #undef setbuf 88404b540aSrobert #undef setvbuf 89404b540aSrobert #undef sprintf 90404b540aSrobert #undef sscanf 91404b540aSrobert #undef tmpfile 92404b540aSrobert #undef tmpnam 93404b540aSrobert #undef ungetc 94404b540aSrobert #undef vfprintf 95404b540aSrobert #undef vprintf 96404b540aSrobert #undef vsprintf 97404b540aSrobert 98404b540aSrobert _GLIBCXX_BEGIN_NAMESPACE(std) 99404b540aSrobert 100404b540aSrobert using ::FILE; 101404b540aSrobert using ::fpos_t; 102404b540aSrobert 103404b540aSrobert using ::clearerr; 104404b540aSrobert using ::fclose; 105404b540aSrobert using ::feof; 106404b540aSrobert using ::ferror; 107404b540aSrobert using ::fflush; 108404b540aSrobert using ::fgetc; 109404b540aSrobert using ::fgetpos; 110404b540aSrobert using ::fgets; 111404b540aSrobert using ::fopen; 112404b540aSrobert using ::fprintf; 113404b540aSrobert using ::fputc; 114404b540aSrobert using ::fputs; 115404b540aSrobert using ::fread; 116404b540aSrobert using ::freopen; 117404b540aSrobert using ::fscanf; 118404b540aSrobert using ::fseek; 119404b540aSrobert using ::fsetpos; 120404b540aSrobert using ::ftell; 121404b540aSrobert using ::fwrite; 122404b540aSrobert using ::getc; 123404b540aSrobert using ::getchar; 124404b540aSrobert using ::perror; 125404b540aSrobert using ::printf; 126404b540aSrobert using ::putc; 127404b540aSrobert using ::putchar; 128404b540aSrobert using ::puts; 129404b540aSrobert using ::remove; 130404b540aSrobert using ::rename; 131404b540aSrobert using ::rewind; 132404b540aSrobert using ::scanf; 133404b540aSrobert using ::setbuf; 134404b540aSrobert using ::setvbuf; 135404b540aSrobert using ::sprintf; 136404b540aSrobert using ::sscanf; 137404b540aSrobert using ::tmpfile; 138404b540aSrobert using ::tmpnam; 139404b540aSrobert using ::ungetc; 140404b540aSrobert using ::vfprintf; 141404b540aSrobert using ::vprintf; 142404b540aSrobert using ::vsprintf; 143404b540aSrobert 144404b540aSrobert _GLIBCXX_END_NAMESPACE 145404b540aSrobert 146404b540aSrobert #if _GLIBCXX_USE_C99 147404b540aSrobert 148404b540aSrobert #undef snprintf 149404b540aSrobert #undef vfscanf 150404b540aSrobert #undef vscanf 151404b540aSrobert #undef vsnprintf 152404b540aSrobert #undef vsscanf 153404b540aSrobert 154404b540aSrobert _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) 155404b540aSrobert 156404b540aSrobert #if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC 157404b540aSrobert extern "C" int 158*6570f874Spascal (snprintf)(char * __restrict, size_t, const char * __restrict, ...); 159404b540aSrobert extern "C" int 160*6570f874Spascal (vfscanf)(FILE * __restrict, const char * __restrict, __gnuc_va_list); 161*6570f874Spascal extern "C" int (vscanf)(const char * __restrict, __gnuc_va_list); 162404b540aSrobert extern "C" int 163*6570f874Spascal (vsnprintf)(char * __restrict, size_t, const char * __restrict, __gnuc_va_list); 164404b540aSrobert extern "C" int 165*6570f874Spascal (vsscanf)(const char * __restrict, const char * __restrict, __gnuc_va_list); 166404b540aSrobert #endif 167404b540aSrobert 168404b540aSrobert #if !_GLIBCXX_USE_C99_DYNAMIC 169404b540aSrobert using ::snprintf; 170404b540aSrobert using ::vfscanf; 171404b540aSrobert using ::vscanf; 172404b540aSrobert using ::vsnprintf; 173404b540aSrobert using ::vsscanf; 174404b540aSrobert #endif 175404b540aSrobert 176404b540aSrobert _GLIBCXX_END_NAMESPACE 177404b540aSrobert 178404b540aSrobert _GLIBCXX_BEGIN_NAMESPACE(std) 179404b540aSrobert 180404b540aSrobert using ::__gnu_cxx::snprintf; 181404b540aSrobert using ::__gnu_cxx::vfscanf; 182404b540aSrobert using ::__gnu_cxx::vscanf; 183404b540aSrobert using ::__gnu_cxx::vsnprintf; 184404b540aSrobert using ::__gnu_cxx::vsscanf; 185404b540aSrobert 186404b540aSrobert _GLIBCXX_END_NAMESPACE 187404b540aSrobert 188404b540aSrobert #endif 189404b540aSrobert 190404b540aSrobert #endif 191