xref: /freebsd/contrib/llvm-project/libcxx/include/cstdio (revision 0b57cec536236d46e3dba9bd041533462f33dbb7)
1*0b57cec5SDimitry Andric// -*- C++ -*-
2*0b57cec5SDimitry Andric//===---------------------------- cstdio ----------------------------------===//
3*0b57cec5SDimitry Andric//
4*0b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*0b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
6*0b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*0b57cec5SDimitry Andric//
8*0b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
9*0b57cec5SDimitry Andric
10*0b57cec5SDimitry Andric#ifndef _LIBCPP_CSTDIO
11*0b57cec5SDimitry Andric#define _LIBCPP_CSTDIO
12*0b57cec5SDimitry Andric
13*0b57cec5SDimitry Andric/*
14*0b57cec5SDimitry Andric    cstdio synopsis
15*0b57cec5SDimitry Andric
16*0b57cec5SDimitry AndricMacros:
17*0b57cec5SDimitry Andric
18*0b57cec5SDimitry Andric    BUFSIZ
19*0b57cec5SDimitry Andric    EOF
20*0b57cec5SDimitry Andric    FILENAME_MAX
21*0b57cec5SDimitry Andric    FOPEN_MAX
22*0b57cec5SDimitry Andric    L_tmpnam
23*0b57cec5SDimitry Andric    NULL
24*0b57cec5SDimitry Andric    SEEK_CUR
25*0b57cec5SDimitry Andric    SEEK_END
26*0b57cec5SDimitry Andric    SEEK_SET
27*0b57cec5SDimitry Andric    TMP_MAX
28*0b57cec5SDimitry Andric    _IOFBF
29*0b57cec5SDimitry Andric    _IOLBF
30*0b57cec5SDimitry Andric    _IONBF
31*0b57cec5SDimitry Andric    stderr
32*0b57cec5SDimitry Andric    stdin
33*0b57cec5SDimitry Andric    stdout
34*0b57cec5SDimitry Andric
35*0b57cec5SDimitry Andricnamespace std
36*0b57cec5SDimitry Andric{
37*0b57cec5SDimitry Andric
38*0b57cec5SDimitry AndricTypes:
39*0b57cec5SDimitry Andric
40*0b57cec5SDimitry AndricFILE
41*0b57cec5SDimitry Andricfpos_t
42*0b57cec5SDimitry Andricsize_t
43*0b57cec5SDimitry Andric
44*0b57cec5SDimitry Andricint remove(const char* filename);
45*0b57cec5SDimitry Andricint rename(const char* old, const char* new);
46*0b57cec5SDimitry AndricFILE* tmpfile(void);
47*0b57cec5SDimitry Andricchar* tmpnam(char* s);
48*0b57cec5SDimitry Andricint fclose(FILE* stream);
49*0b57cec5SDimitry Andricint fflush(FILE* stream);
50*0b57cec5SDimitry AndricFILE* fopen(const char* restrict filename, const char* restrict mode);
51*0b57cec5SDimitry AndricFILE* freopen(const char* restrict filename, const char * restrict mode,
52*0b57cec5SDimitry Andric              FILE * restrict stream);
53*0b57cec5SDimitry Andricvoid setbuf(FILE* restrict stream, char* restrict buf);
54*0b57cec5SDimitry Andricint setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size);
55*0b57cec5SDimitry Andricint fprintf(FILE* restrict stream, const char* restrict format, ...);
56*0b57cec5SDimitry Andricint fscanf(FILE* restrict stream, const char * restrict format, ...);
57*0b57cec5SDimitry Andricint printf(const char* restrict format, ...);
58*0b57cec5SDimitry Andricint scanf(const char* restrict format, ...);
59*0b57cec5SDimitry Andricint snprintf(char* restrict s, size_t n, const char* restrict format, ...);    // C99
60*0b57cec5SDimitry Andricint sprintf(char* restrict s, const char* restrict format, ...);
61*0b57cec5SDimitry Andricint sscanf(const char* restrict s, const char* restrict format, ...);
62*0b57cec5SDimitry Andricint vfprintf(FILE* restrict stream, const char* restrict format, va_list arg);
63*0b57cec5SDimitry Andricint vfscanf(FILE* restrict stream, const char* restrict format, va_list arg);  // C99
64*0b57cec5SDimitry Andricint vprintf(const char* restrict format, va_list arg);
65*0b57cec5SDimitry Andricint vscanf(const char* restrict format, va_list arg);                          // C99
66*0b57cec5SDimitry Andricint vsnprintf(char* restrict s, size_t n, const char* restrict format,         // C99
67*0b57cec5SDimitry Andric              va_list arg);
68*0b57cec5SDimitry Andricint vsprintf(char* restrict s, const char* restrict format, va_list arg);
69*0b57cec5SDimitry Andricint vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99
70*0b57cec5SDimitry Andricint fgetc(FILE* stream);
71*0b57cec5SDimitry Andricchar* fgets(char* restrict s, int n, FILE* restrict stream);
72*0b57cec5SDimitry Andricint fputc(int c, FILE* stream);
73*0b57cec5SDimitry Andricint fputs(const char* restrict s, FILE* restrict stream);
74*0b57cec5SDimitry Andricint getc(FILE* stream);
75*0b57cec5SDimitry Andricint getchar(void);
76*0b57cec5SDimitry Andricchar* gets(char* s);  // removed in C++14
77*0b57cec5SDimitry Andricint putc(int c, FILE* stream);
78*0b57cec5SDimitry Andricint putchar(int c);
79*0b57cec5SDimitry Andricint puts(const char* s);
80*0b57cec5SDimitry Andricint ungetc(int c, FILE* stream);
81*0b57cec5SDimitry Andricsize_t fread(void* restrict ptr, size_t size, size_t nmemb,
82*0b57cec5SDimitry Andric             FILE* restrict stream);
83*0b57cec5SDimitry Andricsize_t fwrite(const void* restrict ptr, size_t size, size_t nmemb,
84*0b57cec5SDimitry Andric              FILE* restrict stream);
85*0b57cec5SDimitry Andricint fgetpos(FILE* restrict stream, fpos_t* restrict pos);
86*0b57cec5SDimitry Andricint fseek(FILE* stream, long offset, int whence);
87*0b57cec5SDimitry Andricint fsetpos(FILE*stream, const fpos_t* pos);
88*0b57cec5SDimitry Andriclong ftell(FILE* stream);
89*0b57cec5SDimitry Andricvoid rewind(FILE* stream);
90*0b57cec5SDimitry Andricvoid clearerr(FILE* stream);
91*0b57cec5SDimitry Andricint feof(FILE* stream);
92*0b57cec5SDimitry Andricint ferror(FILE* stream);
93*0b57cec5SDimitry Andricvoid perror(const char* s);
94*0b57cec5SDimitry Andric
95*0b57cec5SDimitry Andric}  // std
96*0b57cec5SDimitry Andric*/
97*0b57cec5SDimitry Andric
98*0b57cec5SDimitry Andric#include <__config>
99*0b57cec5SDimitry Andric#include <stdio.h>
100*0b57cec5SDimitry Andric
101*0b57cec5SDimitry Andric#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
102*0b57cec5SDimitry Andric#pragma GCC system_header
103*0b57cec5SDimitry Andric#endif
104*0b57cec5SDimitry Andric
105*0b57cec5SDimitry Andric_LIBCPP_BEGIN_NAMESPACE_STD
106*0b57cec5SDimitry Andric
107*0b57cec5SDimitry Andricusing ::FILE;
108*0b57cec5SDimitry Andricusing ::fpos_t;
109*0b57cec5SDimitry Andricusing ::size_t;
110*0b57cec5SDimitry Andric
111*0b57cec5SDimitry Andricusing ::fclose;
112*0b57cec5SDimitry Andricusing ::fflush;
113*0b57cec5SDimitry Andricusing ::setbuf;
114*0b57cec5SDimitry Andricusing ::setvbuf;
115*0b57cec5SDimitry Andricusing ::fprintf;
116*0b57cec5SDimitry Andricusing ::fscanf;
117*0b57cec5SDimitry Andricusing ::snprintf;
118*0b57cec5SDimitry Andricusing ::sprintf;
119*0b57cec5SDimitry Andricusing ::sscanf;
120*0b57cec5SDimitry Andricusing ::vfprintf;
121*0b57cec5SDimitry Andricusing ::vfscanf;
122*0b57cec5SDimitry Andricusing ::vsscanf;
123*0b57cec5SDimitry Andricusing ::vsnprintf;
124*0b57cec5SDimitry Andricusing ::vsprintf;
125*0b57cec5SDimitry Andricusing ::fgetc;
126*0b57cec5SDimitry Andricusing ::fgets;
127*0b57cec5SDimitry Andricusing ::fputc;
128*0b57cec5SDimitry Andricusing ::fputs;
129*0b57cec5SDimitry Andricusing ::getc;
130*0b57cec5SDimitry Andricusing ::putc;
131*0b57cec5SDimitry Andricusing ::ungetc;
132*0b57cec5SDimitry Andricusing ::fread;
133*0b57cec5SDimitry Andricusing ::fwrite;
134*0b57cec5SDimitry Andricusing ::fgetpos;
135*0b57cec5SDimitry Andricusing ::fseek;
136*0b57cec5SDimitry Andricusing ::fsetpos;
137*0b57cec5SDimitry Andricusing ::ftell;
138*0b57cec5SDimitry Andricusing ::rewind;
139*0b57cec5SDimitry Andricusing ::clearerr;
140*0b57cec5SDimitry Andricusing ::feof;
141*0b57cec5SDimitry Andricusing ::ferror;
142*0b57cec5SDimitry Andricusing ::perror;
143*0b57cec5SDimitry Andric
144*0b57cec5SDimitry Andric#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE
145*0b57cec5SDimitry Andricusing ::fopen;
146*0b57cec5SDimitry Andricusing ::freopen;
147*0b57cec5SDimitry Andricusing ::remove;
148*0b57cec5SDimitry Andricusing ::rename;
149*0b57cec5SDimitry Andricusing ::tmpfile;
150*0b57cec5SDimitry Andricusing ::tmpnam;
151*0b57cec5SDimitry Andric#endif
152*0b57cec5SDimitry Andric
153*0b57cec5SDimitry Andric#ifndef _LIBCPP_HAS_NO_STDIN
154*0b57cec5SDimitry Andricusing ::getchar;
155*0b57cec5SDimitry Andric#if _LIBCPP_STD_VER <= 11 && !defined(_LIBCPP_C_HAS_NO_GETS)
156*0b57cec5SDimitry Andricusing ::gets;
157*0b57cec5SDimitry Andric#endif
158*0b57cec5SDimitry Andricusing ::scanf;
159*0b57cec5SDimitry Andricusing ::vscanf;
160*0b57cec5SDimitry Andric#endif
161*0b57cec5SDimitry Andric
162*0b57cec5SDimitry Andric#ifndef _LIBCPP_HAS_NO_STDOUT
163*0b57cec5SDimitry Andricusing ::printf;
164*0b57cec5SDimitry Andricusing ::putchar;
165*0b57cec5SDimitry Andricusing ::puts;
166*0b57cec5SDimitry Andricusing ::vprintf;
167*0b57cec5SDimitry Andric#endif
168*0b57cec5SDimitry Andric
169*0b57cec5SDimitry Andric_LIBCPP_END_NAMESPACE_STD
170*0b57cec5SDimitry Andric
171*0b57cec5SDimitry Andric#endif  // _LIBCPP_CSTDIO
172