xref: /openbsd-src/gnu/gcc/libstdc++-v3/include/c_std/std_cstdio.h (revision 9f865fd097b8822c6d95140f2d32ab0053548b42)
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