// -*- C++ -*- forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// ISO C++ 14882: 27.8.2 C Library files
//
-#ifndef _CPP_CSTDIO
-#define _CPP_CSTDIO 1
+/** @file cstdio
+ * This is a Standard C++ Library file. You should @c #include this file
+ * in your programs, rather than any of the "*.h" implementation files.
+ *
+ * This is the C++ version of the Standard C Library header @c stdio.h,
+ * and its contents are (mostly) the same as that header, but are all
+ * contained in the namespace @c std.
+ */
+
+#ifndef _GLIBCXX_CSTDIO
+#define _GLIBCXX_CSTDIO 1
+
+#pragma GCC system_header
#include <bits/c++config.h>
#include <cstddef>
-#pragma GCC system_header
#include <stdio.h>
// Get rid of those macros defined in <stdio.h> in lieu of real functions.
#undef vprintf
#undef vsprintf
-namespace std
+namespace std
{
using ::FILE;
using ::fpos_t;
using ::vsprintf;
}
-#if _GLIBCPP_USE_C99
+#if _GLIBCXX_USE_C99
#undef snprintf
#undef vfscanf
namespace __gnu_cxx
{
+#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
+ extern "C" int
+ (snprintf)(char * restrict, size_t, const char * restrict, ...);
+ extern "C" int
+ (vfscanf)(FILE * restrict, const char * restrict, __gnuc_va_list);
+ extern "C" int (vscanf)(const char * restrict, __gnuc_va_list);
+ extern "C" int
+ (vsnprintf)(char * restrict, size_t, const char * restrict, __gnuc_va_list);
+ extern "C" int
+ (vsscanf)(const char * restrict, const char * restrict, __gnuc_va_list);
+#endif
+
+#if !_GLIBCXX_USE_C99_DYNAMIC
using ::snprintf;
using ::vfscanf;
using ::vscanf;
using ::vsnprintf;
using ::vsscanf;
+#endif
}
namespace std
using __gnu_cxx::vsnprintf;
using __gnu_cxx::vsscanf;
}
-#endif
+#endif
#endif