100db7afdSDavid E. O'Brien // -*- C++ -*- forwarding header.
200db7afdSDavid E. O'Brien 
3*f8a1b7d9SAlexander Kabaev // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
400db7afdSDavid E. O'Brien // Free Software Foundation, Inc.
500db7afdSDavid E. O'Brien //
600db7afdSDavid E. O'Brien // This file is part of the GNU ISO C++ Library.  This library is free
700db7afdSDavid E. O'Brien // software; you can redistribute it and/or modify it under the
800db7afdSDavid E. O'Brien // terms of the GNU General Public License as published by the
900db7afdSDavid E. O'Brien // Free Software Foundation; either version 2, or (at your option)
1000db7afdSDavid E. O'Brien // any later version.
1100db7afdSDavid E. O'Brien 
1200db7afdSDavid E. O'Brien // This library is distributed in the hope that it will be useful,
1300db7afdSDavid E. O'Brien // but WITHOUT ANY WARRANTY; without even the implied warranty of
1400db7afdSDavid E. O'Brien // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1500db7afdSDavid E. O'Brien // GNU General Public License for more details.
1600db7afdSDavid E. O'Brien 
1700db7afdSDavid E. O'Brien // You should have received a copy of the GNU General Public License along
1800db7afdSDavid E. O'Brien // with this library; see the file COPYING.  If not, write to the Free
19*f8a1b7d9SAlexander Kabaev // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
2000db7afdSDavid E. O'Brien // USA.
2100db7afdSDavid E. O'Brien 
2200db7afdSDavid E. O'Brien // As a special exception, you may use this file as part of a free software
2300db7afdSDavid E. O'Brien // library without restriction.  Specifically, if other files instantiate
2400db7afdSDavid E. O'Brien // templates or use macros or inline functions from this file, or you compile
2500db7afdSDavid E. O'Brien // this file and link it with other files to produce an executable, this
2600db7afdSDavid E. O'Brien // file does not by itself cause the resulting executable to be covered by
2700db7afdSDavid E. O'Brien // the GNU General Public License.  This exception does not however
2800db7afdSDavid E. O'Brien // invalidate any other reasons why the executable file might be covered by
2900db7afdSDavid E. O'Brien // the GNU General Public License.
3000db7afdSDavid E. O'Brien 
31*f8a1b7d9SAlexander Kabaev /** @file include/cstdio
3200db7afdSDavid E. O'Brien  *  This is a Standard C++ Library file.  You should @c #include this file
3300db7afdSDavid E. O'Brien  *  in your programs, rather than any of the "*.h" implementation files.
3400db7afdSDavid E. O'Brien  *
3500db7afdSDavid E. O'Brien  *  This is the C++ version of the Standard C Library header @c stdio.h,
3600db7afdSDavid E. O'Brien  *  and its contents are (mostly) the same as that header, but are all
37*f8a1b7d9SAlexander Kabaev  *  contained in the namespace @c std (except for names which are defined
38*f8a1b7d9SAlexander Kabaev  *  as macros in C).
3900db7afdSDavid E. O'Brien  */
4000db7afdSDavid E. O'Brien 
41*f8a1b7d9SAlexander Kabaev //
42*f8a1b7d9SAlexander Kabaev // ISO C++ 14882: 27.8.2  C Library files
43*f8a1b7d9SAlexander Kabaev //
44*f8a1b7d9SAlexander Kabaev 
45ffeaf689SAlexander Kabaev #ifndef _GLIBCXX_CSTDIO
46ffeaf689SAlexander Kabaev #define _GLIBCXX_CSTDIO 1
4700db7afdSDavid E. O'Brien 
4800db7afdSDavid E. O'Brien #pragma GCC system_header
4900db7afdSDavid E. O'Brien 
5000db7afdSDavid E. O'Brien #include <bits/c++config.h>
5100db7afdSDavid E. O'Brien #include <cstddef>
5200db7afdSDavid E. O'Brien 
5300db7afdSDavid E. O'Brien #include <stdio.h>
5400db7afdSDavid E. O'Brien 
5500db7afdSDavid E. O'Brien // Get rid of those macros defined in <stdio.h> in lieu of real functions.
5600db7afdSDavid E. O'Brien #undef clearerr
5700db7afdSDavid E. O'Brien #undef fclose
5800db7afdSDavid E. O'Brien #undef feof
5900db7afdSDavid E. O'Brien #undef ferror
6000db7afdSDavid E. O'Brien #undef fflush
6100db7afdSDavid E. O'Brien #undef fgetc
6200db7afdSDavid E. O'Brien #undef fgetpos
6300db7afdSDavid E. O'Brien #undef fgets
6400db7afdSDavid E. O'Brien #undef fopen
6500db7afdSDavid E. O'Brien #undef fprintf
6600db7afdSDavid E. O'Brien #undef fputc
6700db7afdSDavid E. O'Brien #undef fputs
6800db7afdSDavid E. O'Brien #undef fread
6900db7afdSDavid E. O'Brien #undef freopen
7000db7afdSDavid E. O'Brien #undef fscanf
7100db7afdSDavid E. O'Brien #undef fseek
7200db7afdSDavid E. O'Brien #undef fsetpos
7300db7afdSDavid E. O'Brien #undef ftell
7400db7afdSDavid E. O'Brien #undef fwrite
7500db7afdSDavid E. O'Brien #undef getc
7600db7afdSDavid E. O'Brien #undef getchar
7700db7afdSDavid E. O'Brien #undef gets
7800db7afdSDavid E. O'Brien #undef perror
7900db7afdSDavid E. O'Brien #undef printf
8000db7afdSDavid E. O'Brien #undef putc
8100db7afdSDavid E. O'Brien #undef putchar
8200db7afdSDavid E. O'Brien #undef puts
8300db7afdSDavid E. O'Brien #undef remove
8400db7afdSDavid E. O'Brien #undef rename
8500db7afdSDavid E. O'Brien #undef rewind
8600db7afdSDavid E. O'Brien #undef scanf
8700db7afdSDavid E. O'Brien #undef setbuf
8800db7afdSDavid E. O'Brien #undef setvbuf
8900db7afdSDavid E. O'Brien #undef sprintf
9000db7afdSDavid E. O'Brien #undef sscanf
9100db7afdSDavid E. O'Brien #undef tmpfile
9200db7afdSDavid E. O'Brien #undef tmpnam
9300db7afdSDavid E. O'Brien #undef ungetc
9400db7afdSDavid E. O'Brien #undef vfprintf
9500db7afdSDavid E. O'Brien #undef vprintf
9600db7afdSDavid E. O'Brien #undef vsprintf
9700db7afdSDavid E. O'Brien 
98*f8a1b7d9SAlexander Kabaev _GLIBCXX_BEGIN_NAMESPACE(std)
99*f8a1b7d9SAlexander Kabaev 
10000db7afdSDavid E. O'Brien   using ::FILE;
10100db7afdSDavid E. O'Brien   using ::fpos_t;
10200db7afdSDavid E. O'Brien 
10300db7afdSDavid E. O'Brien   using ::clearerr;
10400db7afdSDavid E. O'Brien   using ::fclose;
10500db7afdSDavid E. O'Brien   using ::feof;
10600db7afdSDavid E. O'Brien   using ::ferror;
10700db7afdSDavid E. O'Brien   using ::fflush;
10800db7afdSDavid E. O'Brien   using ::fgetc;
10900db7afdSDavid E. O'Brien   using ::fgetpos;
11000db7afdSDavid E. O'Brien   using ::fgets;
11100db7afdSDavid E. O'Brien   using ::fopen;
11200db7afdSDavid E. O'Brien   using ::fprintf;
11300db7afdSDavid E. O'Brien   using ::fputc;
11400db7afdSDavid E. O'Brien   using ::fputs;
11500db7afdSDavid E. O'Brien   using ::fread;
11600db7afdSDavid E. O'Brien   using ::freopen;
11700db7afdSDavid E. O'Brien   using ::fscanf;
11800db7afdSDavid E. O'Brien   using ::fseek;
11900db7afdSDavid E. O'Brien   using ::fsetpos;
12000db7afdSDavid E. O'Brien   using ::ftell;
12100db7afdSDavid E. O'Brien   using ::fwrite;
12200db7afdSDavid E. O'Brien   using ::getc;
12300db7afdSDavid E. O'Brien   using ::getchar;
12400db7afdSDavid E. O'Brien   using ::gets;
12500db7afdSDavid E. O'Brien   using ::perror;
12600db7afdSDavid E. O'Brien   using ::printf;
12700db7afdSDavid E. O'Brien   using ::putc;
12800db7afdSDavid E. O'Brien   using ::putchar;
12900db7afdSDavid E. O'Brien   using ::puts;
13000db7afdSDavid E. O'Brien   using ::remove;
13100db7afdSDavid E. O'Brien   using ::rename;
13200db7afdSDavid E. O'Brien   using ::rewind;
13300db7afdSDavid E. O'Brien   using ::scanf;
13400db7afdSDavid E. O'Brien   using ::setbuf;
13500db7afdSDavid E. O'Brien   using ::setvbuf;
13600db7afdSDavid E. O'Brien   using ::sprintf;
13700db7afdSDavid E. O'Brien   using ::sscanf;
13800db7afdSDavid E. O'Brien   using ::tmpfile;
13900db7afdSDavid E. O'Brien   using ::tmpnam;
14000db7afdSDavid E. O'Brien   using ::ungetc;
14100db7afdSDavid E. O'Brien   using ::vfprintf;
14200db7afdSDavid E. O'Brien   using ::vprintf;
14300db7afdSDavid E. O'Brien   using ::vsprintf;
144*f8a1b7d9SAlexander Kabaev 
145*f8a1b7d9SAlexander Kabaev _GLIBCXX_END_NAMESPACE
14600db7afdSDavid E. O'Brien 
147ffeaf689SAlexander Kabaev #if _GLIBCXX_USE_C99
14800db7afdSDavid E. O'Brien 
14900db7afdSDavid E. O'Brien #undef snprintf
15000db7afdSDavid E. O'Brien #undef vfscanf
15100db7afdSDavid E. O'Brien #undef vscanf
15200db7afdSDavid E. O'Brien #undef vsnprintf
15300db7afdSDavid E. O'Brien #undef vsscanf
15400db7afdSDavid E. O'Brien 
155*f8a1b7d9SAlexander Kabaev _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
156*f8a1b7d9SAlexander Kabaev 
157ffeaf689SAlexander Kabaev #if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
1581b86b14eSAlexander Kabaev   extern "C" int
1591b86b14eSAlexander Kabaev   (snprintf)(char * restrict, size_t, const char * restrict, ...);
1601b86b14eSAlexander Kabaev   extern "C" int
1611b86b14eSAlexander Kabaev   (vfscanf)(FILE * restrict, const char * restrict, __gnuc_va_list);
1621b86b14eSAlexander Kabaev   extern "C" int (vscanf)(const char * restrict, __gnuc_va_list);
1631b86b14eSAlexander Kabaev   extern "C" int
1641b86b14eSAlexander Kabaev   (vsnprintf)(char * restrict, size_t, const char * restrict, __gnuc_va_list);
1651b86b14eSAlexander Kabaev   extern "C" int
1661b86b14eSAlexander Kabaev   (vsscanf)(const char * restrict, const char * restrict, __gnuc_va_list);
1671b86b14eSAlexander Kabaev #endif
168*f8a1b7d9SAlexander Kabaev 
169ffeaf689SAlexander Kabaev #if !_GLIBCXX_USE_C99_DYNAMIC
17000db7afdSDavid E. O'Brien   using ::snprintf;
17100db7afdSDavid E. O'Brien   using ::vfscanf;
17200db7afdSDavid E. O'Brien   using ::vscanf;
17300db7afdSDavid E. O'Brien   using ::vsnprintf;
17400db7afdSDavid E. O'Brien   using ::vsscanf;
1751b86b14eSAlexander Kabaev #endif
17600db7afdSDavid E. O'Brien 
177*f8a1b7d9SAlexander Kabaev _GLIBCXX_END_NAMESPACE
178*f8a1b7d9SAlexander Kabaev 
179*f8a1b7d9SAlexander Kabaev _GLIBCXX_BEGIN_NAMESPACE(std)
180*f8a1b7d9SAlexander Kabaev 
181*f8a1b7d9SAlexander Kabaev   using ::__gnu_cxx::snprintf;
182*f8a1b7d9SAlexander Kabaev   using ::__gnu_cxx::vfscanf;
183*f8a1b7d9SAlexander Kabaev   using ::__gnu_cxx::vscanf;
184*f8a1b7d9SAlexander Kabaev   using ::__gnu_cxx::vsnprintf;
185*f8a1b7d9SAlexander Kabaev   using ::__gnu_cxx::vsscanf;
186*f8a1b7d9SAlexander Kabaev 
187*f8a1b7d9SAlexander Kabaev _GLIBCXX_END_NAMESPACE
188*f8a1b7d9SAlexander Kabaev 
18900db7afdSDavid E. O'Brien #endif
19000db7afdSDavid E. O'Brien 
19100db7afdSDavid E. O'Brien #endif
192