xref: /llvm-project/libcxx/include/__cxx03/cstdio (revision ce7771902dc50d900de639d499a60486b83f70e0)
1e78f53d1SNikolas Klauser// -*- C++ -*-
2e78f53d1SNikolas Klauser//===----------------------------------------------------------------------===//
3e78f53d1SNikolas Klauser//
4e78f53d1SNikolas Klauser// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5e78f53d1SNikolas Klauser// See https://llvm.org/LICENSE.txt for license information.
6e78f53d1SNikolas Klauser// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7e78f53d1SNikolas Klauser//
8e78f53d1SNikolas Klauser//===----------------------------------------------------------------------===//
9e78f53d1SNikolas Klauser
10*ce777190SNikolas Klauser#ifndef _LIBCPP___CXX03_CSTDIO
11*ce777190SNikolas Klauser#define _LIBCPP___CXX03_CSTDIO
12e78f53d1SNikolas Klauser
13e78f53d1SNikolas Klauser/*
14e78f53d1SNikolas Klauser    cstdio synopsis
15e78f53d1SNikolas Klauser
16e78f53d1SNikolas KlauserMacros:
17e78f53d1SNikolas Klauser
18e78f53d1SNikolas Klauser    BUFSIZ
19e78f53d1SNikolas Klauser    EOF
20e78f53d1SNikolas Klauser    FILENAME_MAX
21e78f53d1SNikolas Klauser    FOPEN_MAX
22e78f53d1SNikolas Klauser    L_tmpnam
23e78f53d1SNikolas Klauser    NULL
24e78f53d1SNikolas Klauser    SEEK_CUR
25e78f53d1SNikolas Klauser    SEEK_END
26e78f53d1SNikolas Klauser    SEEK_SET
27e78f53d1SNikolas Klauser    TMP_MAX
28e78f53d1SNikolas Klauser    _IOFBF
29e78f53d1SNikolas Klauser    _IOLBF
30e78f53d1SNikolas Klauser    _IONBF
31e78f53d1SNikolas Klauser    stderr
32e78f53d1SNikolas Klauser    stdin
33e78f53d1SNikolas Klauser    stdout
34e78f53d1SNikolas Klauser
35e78f53d1SNikolas Klausernamespace std
36e78f53d1SNikolas Klauser{
37e78f53d1SNikolas Klauser
38e78f53d1SNikolas KlauserTypes:
39e78f53d1SNikolas Klauser
40e78f53d1SNikolas KlauserFILE
41e78f53d1SNikolas Klauserfpos_t
42e78f53d1SNikolas Klausersize_t
43e78f53d1SNikolas Klauser
44e78f53d1SNikolas Klauserint remove(const char* filename);
45e78f53d1SNikolas Klauserint rename(const char* old, const char* new);
46e78f53d1SNikolas KlauserFILE* tmpfile(void);
47e78f53d1SNikolas Klauserchar* tmpnam(char* s);
48e78f53d1SNikolas Klauserint fclose(FILE* stream);
49e78f53d1SNikolas Klauserint fflush(FILE* stream);
50e78f53d1SNikolas KlauserFILE* fopen(const char* restrict filename, const char* restrict mode);
51e78f53d1SNikolas KlauserFILE* freopen(const char* restrict filename, const char * restrict mode,
52e78f53d1SNikolas Klauser              FILE * restrict stream);
53e78f53d1SNikolas Klauservoid setbuf(FILE* restrict stream, char* restrict buf);
54e78f53d1SNikolas Klauserint setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size);
55e78f53d1SNikolas Klauserint fprintf(FILE* restrict stream, const char* restrict format, ...);
56e78f53d1SNikolas Klauserint fscanf(FILE* restrict stream, const char * restrict format, ...);
57e78f53d1SNikolas Klauserint printf(const char* restrict format, ...);
58e78f53d1SNikolas Klauserint scanf(const char* restrict format, ...);
59e78f53d1SNikolas Klauserint snprintf(char* restrict s, size_t n, const char* restrict format, ...);    // C99
60e78f53d1SNikolas Klauserint sprintf(char* restrict s, const char* restrict format, ...);
61e78f53d1SNikolas Klauserint sscanf(const char* restrict s, const char* restrict format, ...);
62e78f53d1SNikolas Klauserint vfprintf(FILE* restrict stream, const char* restrict format, va_list arg);
63e78f53d1SNikolas Klauserint vfscanf(FILE* restrict stream, const char* restrict format, va_list arg);  // C99
64e78f53d1SNikolas Klauserint vprintf(const char* restrict format, va_list arg);
65e78f53d1SNikolas Klauserint vscanf(const char* restrict format, va_list arg);                          // C99
66e78f53d1SNikolas Klauserint vsnprintf(char* restrict s, size_t n, const char* restrict format,         // C99
67e78f53d1SNikolas Klauser              va_list arg);
68e78f53d1SNikolas Klauserint vsprintf(char* restrict s, const char* restrict format, va_list arg);
69e78f53d1SNikolas Klauserint vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99
70e78f53d1SNikolas Klauserint fgetc(FILE* stream);
71e78f53d1SNikolas Klauserchar* fgets(char* restrict s, int n, FILE* restrict stream);
72e78f53d1SNikolas Klauserint fputc(int c, FILE* stream);
73e78f53d1SNikolas Klauserint fputs(const char* restrict s, FILE* restrict stream);
74e78f53d1SNikolas Klauserint getc(FILE* stream);
75e78f53d1SNikolas Klauserint getchar(void);
76e78f53d1SNikolas Klauserchar* gets(char* s);  // removed in C++14
77e78f53d1SNikolas Klauserint putc(int c, FILE* stream);
78e78f53d1SNikolas Klauserint putchar(int c);
79e78f53d1SNikolas Klauserint puts(const char* s);
80e78f53d1SNikolas Klauserint ungetc(int c, FILE* stream);
81e78f53d1SNikolas Klausersize_t fread(void* restrict ptr, size_t size, size_t nmemb,
82e78f53d1SNikolas Klauser             FILE* restrict stream);
83e78f53d1SNikolas Klausersize_t fwrite(const void* restrict ptr, size_t size, size_t nmemb,
84e78f53d1SNikolas Klauser              FILE* restrict stream);
85e78f53d1SNikolas Klauserint fgetpos(FILE* restrict stream, fpos_t* restrict pos);
86e78f53d1SNikolas Klauserint fseek(FILE* stream, long offset, int whence);
87e78f53d1SNikolas Klauserint fsetpos(FILE*stream, const fpos_t* pos);
88e78f53d1SNikolas Klauserlong ftell(FILE* stream);
89e78f53d1SNikolas Klauservoid rewind(FILE* stream);
90e78f53d1SNikolas Klauservoid clearerr(FILE* stream);
91e78f53d1SNikolas Klauserint feof(FILE* stream);
92e78f53d1SNikolas Klauserint ferror(FILE* stream);
93e78f53d1SNikolas Klauservoid perror(const char* s);
94e78f53d1SNikolas Klauser
95e78f53d1SNikolas Klauser}  // std
96e78f53d1SNikolas Klauser*/
97e78f53d1SNikolas Klauser
9873fbae83SNikolas Klauser#include <__cxx03/__config>
99e78f53d1SNikolas Klauser
10073fbae83SNikolas Klauser#include <__cxx03/stdio.h>
101e78f53d1SNikolas Klauser
102*ce777190SNikolas Klauser#ifndef _LIBCPP___CXX03_STDIO_H
103e78f53d1SNikolas Klauser#   error <cstdio> tried including <stdio.h> but didn't find libc++'s <stdio.h> header. \
104e78f53d1SNikolas Klauser          This usually means that your header search paths are not configured properly. \
105e78f53d1SNikolas Klauser          The header search paths should contain the C++ Standard Library headers before \
106e78f53d1SNikolas Klauser          any C Standard Library, and you are probably using compiler flags that make that \
107e78f53d1SNikolas Klauser          not be the case.
108e78f53d1SNikolas Klauser#endif
109e78f53d1SNikolas Klauser
110e78f53d1SNikolas Klauser#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
111e78f53d1SNikolas Klauser#  pragma GCC system_header
112e78f53d1SNikolas Klauser#endif
113e78f53d1SNikolas Klauser
114e78f53d1SNikolas Klauser_LIBCPP_BEGIN_NAMESPACE_STD
115e78f53d1SNikolas Klauser
116e78f53d1SNikolas Klauserusing ::FILE _LIBCPP_USING_IF_EXISTS;
117e78f53d1SNikolas Klauserusing ::fpos_t _LIBCPP_USING_IF_EXISTS;
118e78f53d1SNikolas Klauserusing ::size_t _LIBCPP_USING_IF_EXISTS;
119e78f53d1SNikolas Klauser
120e78f53d1SNikolas Klauserusing ::fclose _LIBCPP_USING_IF_EXISTS;
121e78f53d1SNikolas Klauserusing ::fflush _LIBCPP_USING_IF_EXISTS;
122e78f53d1SNikolas Klauserusing ::setbuf _LIBCPP_USING_IF_EXISTS;
123e78f53d1SNikolas Klauserusing ::setvbuf _LIBCPP_USING_IF_EXISTS;
124e78f53d1SNikolas Klauserusing ::fprintf _LIBCPP_USING_IF_EXISTS;
125e78f53d1SNikolas Klauserusing ::fscanf _LIBCPP_USING_IF_EXISTS;
126e78f53d1SNikolas Klauserusing ::snprintf _LIBCPP_USING_IF_EXISTS;
127e78f53d1SNikolas Klauserusing ::sprintf _LIBCPP_USING_IF_EXISTS;
128e78f53d1SNikolas Klauserusing ::sscanf _LIBCPP_USING_IF_EXISTS;
129e78f53d1SNikolas Klauserusing ::vfprintf _LIBCPP_USING_IF_EXISTS;
130e78f53d1SNikolas Klauserusing ::vfscanf _LIBCPP_USING_IF_EXISTS;
131e78f53d1SNikolas Klauserusing ::vsscanf _LIBCPP_USING_IF_EXISTS;
132e78f53d1SNikolas Klauserusing ::vsnprintf _LIBCPP_USING_IF_EXISTS;
133e78f53d1SNikolas Klauserusing ::vsprintf _LIBCPP_USING_IF_EXISTS;
134e78f53d1SNikolas Klauserusing ::fgetc _LIBCPP_USING_IF_EXISTS;
135e78f53d1SNikolas Klauserusing ::fgets _LIBCPP_USING_IF_EXISTS;
136e78f53d1SNikolas Klauserusing ::fputc _LIBCPP_USING_IF_EXISTS;
137e78f53d1SNikolas Klauserusing ::fputs _LIBCPP_USING_IF_EXISTS;
138e78f53d1SNikolas Klauserusing ::getc _LIBCPP_USING_IF_EXISTS;
139e78f53d1SNikolas Klauserusing ::putc _LIBCPP_USING_IF_EXISTS;
140e78f53d1SNikolas Klauserusing ::ungetc _LIBCPP_USING_IF_EXISTS;
141e78f53d1SNikolas Klauserusing ::fread _LIBCPP_USING_IF_EXISTS;
142e78f53d1SNikolas Klauserusing ::fwrite _LIBCPP_USING_IF_EXISTS;
143e78f53d1SNikolas Klauserusing ::fgetpos _LIBCPP_USING_IF_EXISTS;
144e78f53d1SNikolas Klauserusing ::fseek _LIBCPP_USING_IF_EXISTS;
145e78f53d1SNikolas Klauserusing ::fsetpos _LIBCPP_USING_IF_EXISTS;
146e78f53d1SNikolas Klauserusing ::ftell _LIBCPP_USING_IF_EXISTS;
147e78f53d1SNikolas Klauserusing ::rewind _LIBCPP_USING_IF_EXISTS;
148e78f53d1SNikolas Klauserusing ::clearerr _LIBCPP_USING_IF_EXISTS;
149e78f53d1SNikolas Klauserusing ::feof _LIBCPP_USING_IF_EXISTS;
150e78f53d1SNikolas Klauserusing ::ferror _LIBCPP_USING_IF_EXISTS;
151e78f53d1SNikolas Klauserusing ::perror _LIBCPP_USING_IF_EXISTS;
152e78f53d1SNikolas Klauser
153e78f53d1SNikolas Klauserusing ::fopen _LIBCPP_USING_IF_EXISTS;
154e78f53d1SNikolas Klauserusing ::freopen _LIBCPP_USING_IF_EXISTS;
155e78f53d1SNikolas Klauserusing ::remove _LIBCPP_USING_IF_EXISTS;
156e78f53d1SNikolas Klauserusing ::rename _LIBCPP_USING_IF_EXISTS;
157e78f53d1SNikolas Klauserusing ::tmpfile _LIBCPP_USING_IF_EXISTS;
158e78f53d1SNikolas Klauserusing ::tmpnam _LIBCPP_USING_IF_EXISTS;
159e78f53d1SNikolas Klauser
160e78f53d1SNikolas Klauserusing ::getchar _LIBCPP_USING_IF_EXISTS;
161e78f53d1SNikolas Klauser#if _LIBCPP_STD_VER <= 11
162e78f53d1SNikolas Klauserusing ::gets _LIBCPP_USING_IF_EXISTS;
163e78f53d1SNikolas Klauser#endif
164e78f53d1SNikolas Klauserusing ::scanf _LIBCPP_USING_IF_EXISTS;
165e78f53d1SNikolas Klauserusing ::vscanf _LIBCPP_USING_IF_EXISTS;
166e78f53d1SNikolas Klauser
167e78f53d1SNikolas Klauserusing ::printf _LIBCPP_USING_IF_EXISTS;
168e78f53d1SNikolas Klauserusing ::putchar _LIBCPP_USING_IF_EXISTS;
169e78f53d1SNikolas Klauserusing ::puts _LIBCPP_USING_IF_EXISTS;
170e78f53d1SNikolas Klauserusing ::vprintf _LIBCPP_USING_IF_EXISTS;
171e78f53d1SNikolas Klauser
172e78f53d1SNikolas Klauser_LIBCPP_END_NAMESPACE_STD
173e78f53d1SNikolas Klauser
174*ce777190SNikolas Klauser#endif // _LIBCPP___CXX03_CSTDIO
175