xref: /dflybsd-src/contrib/gcc-4.7/libstdc++-v3/include/c_std/cstdio (revision 04febcfb30580676d3e95f58a16c5137ee478b32)
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