xref: /netbsd-src/external/gpl3/gcc.old/dist/libstdc++-v3/include/c_std/cstdio (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
136ac495dSmrg// -*- C++ -*- forwarding header.
236ac495dSmrg
3*8feb0f0bSmrg// Copyright (C) 1997-2020 Free Software Foundation, Inc.
436ac495dSmrg//
536ac495dSmrg// This file is part of the GNU ISO C++ Library.  This library is free
636ac495dSmrg// software; you can redistribute it and/or modify it under the
736ac495dSmrg// terms of the GNU General Public License as published by the
836ac495dSmrg// Free Software Foundation; either version 3, or (at your option)
936ac495dSmrg// any later version.
1036ac495dSmrg
1136ac495dSmrg// This library is distributed in the hope that it will be useful,
1236ac495dSmrg// but WITHOUT ANY WARRANTY; without even the implied warranty of
1336ac495dSmrg// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1436ac495dSmrg// GNU General Public License for more details.
1536ac495dSmrg
1636ac495dSmrg// Under Section 7 of GPL version 3, you are granted additional
1736ac495dSmrg// permissions described in the GCC Runtime Library Exception, version
1836ac495dSmrg// 3.1, as published by the Free Software Foundation.
1936ac495dSmrg
2036ac495dSmrg// You should have received a copy of the GNU General Public License and
2136ac495dSmrg// a copy of the GCC Runtime Library Exception along with this program;
2236ac495dSmrg// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
2336ac495dSmrg// <http://www.gnu.org/licenses/>.
2436ac495dSmrg
2536ac495dSmrg/** @file include/cstdio
2636ac495dSmrg *  This is a Standard C++ Library file.  You should @c #include this file
2736ac495dSmrg *  in your programs, rather than any of the @a *.h implementation files.
2836ac495dSmrg *
2936ac495dSmrg *  This is the C++ version of the Standard C Library header @c stdio.h,
3036ac495dSmrg *  and its contents are (mostly) the same as that header, but are all
3136ac495dSmrg *  contained in the namespace @c std (except for names which are defined
3236ac495dSmrg *  as macros in C).
3336ac495dSmrg */
3436ac495dSmrg
3536ac495dSmrg//
3636ac495dSmrg// ISO C++ 14882: 27.8.2  C Library files
3736ac495dSmrg//
3836ac495dSmrg
3936ac495dSmrg#ifndef _GLIBCXX_CSTDIO
4036ac495dSmrg#define _GLIBCXX_CSTDIO 1
4136ac495dSmrg
4236ac495dSmrg#pragma GCC system_header
4336ac495dSmrg
4436ac495dSmrg#include <bits/c++config.h>
4536ac495dSmrg#include <stdio.h>
4636ac495dSmrg
4736ac495dSmrg#if __cplusplus <= 201103L && !defined(_GLIBCXX_HAVE_GETS)
4836ac495dSmrgextern "C" char* gets (char* __s) __attribute__((__deprecated__));
4936ac495dSmrg#endif
5036ac495dSmrg
5136ac495dSmrg// Get rid of those macros defined in <stdio.h> in lieu of real functions.
5236ac495dSmrg#undef clearerr
5336ac495dSmrg#undef fclose
5436ac495dSmrg#undef feof
5536ac495dSmrg#undef ferror
5636ac495dSmrg#undef fflush
5736ac495dSmrg#undef fgetc
5836ac495dSmrg#undef fgetpos
5936ac495dSmrg#undef fgets
6036ac495dSmrg#undef fopen
6136ac495dSmrg#undef fprintf
6236ac495dSmrg#undef fputc
6336ac495dSmrg#undef fputs
6436ac495dSmrg#undef fread
6536ac495dSmrg#undef freopen
6636ac495dSmrg#undef fscanf
6736ac495dSmrg#undef fseek
6836ac495dSmrg#undef fsetpos
6936ac495dSmrg#undef ftell
7036ac495dSmrg#undef fwrite
7136ac495dSmrg#undef getc
7236ac495dSmrg#undef getchar
7336ac495dSmrg#if __cplusplus <= 201103L
7436ac495dSmrg# undef gets
7536ac495dSmrg#endif
7636ac495dSmrg#undef perror
7736ac495dSmrg#undef printf
7836ac495dSmrg#undef putc
7936ac495dSmrg#undef putchar
8036ac495dSmrg#undef puts
8136ac495dSmrg#undef remove
8236ac495dSmrg#undef rename
8336ac495dSmrg#undef rewind
8436ac495dSmrg#undef scanf
8536ac495dSmrg#undef setbuf
8636ac495dSmrg#undef setvbuf
8736ac495dSmrg#undef sprintf
8836ac495dSmrg#undef sscanf
8936ac495dSmrg#undef tmpfile
9036ac495dSmrg#undef tmpnam
9136ac495dSmrg#undef ungetc
9236ac495dSmrg#undef vfprintf
9336ac495dSmrg#undef vprintf
9436ac495dSmrg#undef vsprintf
9536ac495dSmrg
9636ac495dSmrgnamespace std
9736ac495dSmrg{
9836ac495dSmrg  using ::FILE;
9936ac495dSmrg  using ::fpos_t;
10036ac495dSmrg
10136ac495dSmrg  using ::clearerr;
10236ac495dSmrg  using ::fclose;
10336ac495dSmrg  using ::feof;
10436ac495dSmrg  using ::ferror;
10536ac495dSmrg  using ::fflush;
10636ac495dSmrg  using ::fgetc;
10736ac495dSmrg  using ::fgetpos;
10836ac495dSmrg  using ::fgets;
10936ac495dSmrg  using ::fopen;
11036ac495dSmrg  using ::fprintf;
11136ac495dSmrg  using ::fputc;
11236ac495dSmrg  using ::fputs;
11336ac495dSmrg  using ::fread;
11436ac495dSmrg  using ::freopen;
11536ac495dSmrg  using ::fscanf;
11636ac495dSmrg  using ::fseek;
11736ac495dSmrg  using ::fsetpos;
11836ac495dSmrg  using ::ftell;
11936ac495dSmrg  using ::fwrite;
12036ac495dSmrg  using ::getc;
12136ac495dSmrg  using ::getchar;
12236ac495dSmrg#if __cplusplus <= 201103L
12336ac495dSmrg  // LWG 2249
12436ac495dSmrg  using ::gets;
12536ac495dSmrg#endif
12636ac495dSmrg  using ::perror;
12736ac495dSmrg  using ::printf;
12836ac495dSmrg  using ::putc;
12936ac495dSmrg  using ::putchar;
13036ac495dSmrg  using ::puts;
13136ac495dSmrg  using ::remove;
13236ac495dSmrg  using ::rename;
13336ac495dSmrg  using ::rewind;
13436ac495dSmrg  using ::scanf;
13536ac495dSmrg  using ::setbuf;
13636ac495dSmrg  using ::setvbuf;
13736ac495dSmrg  using ::sprintf;
13836ac495dSmrg  using ::sscanf;
13936ac495dSmrg  using ::tmpfile;
14036ac495dSmrg  using ::tmpnam;
14136ac495dSmrg  using ::ungetc;
14236ac495dSmrg  using ::vfprintf;
14336ac495dSmrg  using ::vprintf;
14436ac495dSmrg  using ::vsprintf;
14536ac495dSmrg} // namespace std
14636ac495dSmrg
14736ac495dSmrg#if _GLIBCXX_USE_C99_STDIO
14836ac495dSmrg
14936ac495dSmrg#undef snprintf
15036ac495dSmrg#undef vfscanf
15136ac495dSmrg#undef vscanf
15236ac495dSmrg#undef vsnprintf
15336ac495dSmrg#undef vsscanf
15436ac495dSmrg
15536ac495dSmrgnamespace __gnu_cxx
15636ac495dSmrg{
15736ac495dSmrg#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
15836ac495dSmrg  extern "C" int
15936ac495dSmrg  (snprintf)(char * __restrict, std::size_t, const char * __restrict, ...)
16036ac495dSmrg  throw ();
16136ac495dSmrg  extern "C" int
16236ac495dSmrg  (vfscanf)(FILE * __restrict, const char * __restrict, __gnuc_va_list);
16336ac495dSmrg  extern "C" int (vscanf)(const char * __restrict, __gnuc_va_list);
16436ac495dSmrg  extern "C" int
16536ac495dSmrg  (vsnprintf)(char * __restrict, std::size_t, const char * __restrict,
16636ac495dSmrg	      __gnuc_va_list) throw ();
16736ac495dSmrg  extern "C" int
16836ac495dSmrg  (vsscanf)(const char * __restrict, const char * __restrict, __gnuc_va_list)
16936ac495dSmrg  throw ();
17036ac495dSmrg#endif
17136ac495dSmrg
17236ac495dSmrg#if !_GLIBCXX_USE_C99_DYNAMIC
17336ac495dSmrg  using ::snprintf;
17436ac495dSmrg  using ::vfscanf;
17536ac495dSmrg  using ::vscanf;
17636ac495dSmrg  using ::vsnprintf;
17736ac495dSmrg  using ::vsscanf;
17836ac495dSmrg#endif
17936ac495dSmrg} // namespace __gnu_cxx
18036ac495dSmrg
18136ac495dSmrgnamespace std
18236ac495dSmrg{
18336ac495dSmrg  using ::__gnu_cxx::snprintf;
18436ac495dSmrg  using ::__gnu_cxx::vfscanf;
18536ac495dSmrg  using ::__gnu_cxx::vscanf;
18636ac495dSmrg  using ::__gnu_cxx::vsnprintf;
18736ac495dSmrg  using ::__gnu_cxx::vsscanf;
18836ac495dSmrg} // namespace std
18936ac495dSmrg
19036ac495dSmrg#endif
19136ac495dSmrg
19236ac495dSmrg#endif
193