xref: /freebsd/contrib/llvm-project/libcxx/include/__cxx03/stdio.h (revision 700637cbb5e582861067a11aaca4d053546871d2)
1*700637cbSDimitry Andric // -*- C++ -*-
2*700637cbSDimitry Andric //===----------------------------------------------------------------------===//
3*700637cbSDimitry Andric //
4*700637cbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*700637cbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
6*700637cbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*700637cbSDimitry Andric //
8*700637cbSDimitry Andric //===----------------------------------------------------------------------===//
9*700637cbSDimitry Andric 
10*700637cbSDimitry Andric #if defined(__need_FILE) || defined(__need___FILE)
11*700637cbSDimitry Andric 
12*700637cbSDimitry Andric #  if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
13*700637cbSDimitry Andric #    pragma GCC system_header
14*700637cbSDimitry Andric #  endif
15*700637cbSDimitry Andric 
16*700637cbSDimitry Andric #  include_next <stdio.h>
17*700637cbSDimitry Andric 
18*700637cbSDimitry Andric #elif !defined(_LIBCPP___CXX03_STDIO_H)
19*700637cbSDimitry Andric #  define _LIBCPP___CXX03_STDIO_H
20*700637cbSDimitry Andric 
21*700637cbSDimitry Andric /*
22*700637cbSDimitry Andric     stdio.h synopsis
23*700637cbSDimitry Andric 
24*700637cbSDimitry Andric Macros:
25*700637cbSDimitry Andric 
26*700637cbSDimitry Andric     BUFSIZ
27*700637cbSDimitry Andric     EOF
28*700637cbSDimitry Andric     FILENAME_MAX
29*700637cbSDimitry Andric     FOPEN_MAX
30*700637cbSDimitry Andric     L_tmpnam
31*700637cbSDimitry Andric     NULL
32*700637cbSDimitry Andric     SEEK_CUR
33*700637cbSDimitry Andric     SEEK_END
34*700637cbSDimitry Andric     SEEK_SET
35*700637cbSDimitry Andric     TMP_MAX
36*700637cbSDimitry Andric     _IOFBF
37*700637cbSDimitry Andric     _IOLBF
38*700637cbSDimitry Andric     _IONBF
39*700637cbSDimitry Andric     stderr
40*700637cbSDimitry Andric     stdin
41*700637cbSDimitry Andric     stdout
42*700637cbSDimitry Andric 
43*700637cbSDimitry Andric Types:
44*700637cbSDimitry Andric 
45*700637cbSDimitry Andric FILE
46*700637cbSDimitry Andric fpos_t
47*700637cbSDimitry Andric size_t
48*700637cbSDimitry Andric 
49*700637cbSDimitry Andric int remove(const char* filename);
50*700637cbSDimitry Andric int rename(const char* old, const char* new);
51*700637cbSDimitry Andric FILE* tmpfile(void);
52*700637cbSDimitry Andric char* tmpnam(char* s);
53*700637cbSDimitry Andric int fclose(FILE* stream);
54*700637cbSDimitry Andric int fflush(FILE* stream);
55*700637cbSDimitry Andric FILE* fopen(const char* restrict filename, const char* restrict mode);
56*700637cbSDimitry Andric FILE* freopen(const char* restrict filename, const char * restrict mode,
57*700637cbSDimitry Andric               FILE * restrict stream);
58*700637cbSDimitry Andric void setbuf(FILE* restrict stream, char* restrict buf);
59*700637cbSDimitry Andric int setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size);
60*700637cbSDimitry Andric int fprintf(FILE* restrict stream, const char* restrict format, ...);
61*700637cbSDimitry Andric int fscanf(FILE* restrict stream, const char * restrict format, ...);
62*700637cbSDimitry Andric int printf(const char* restrict format, ...);
63*700637cbSDimitry Andric int scanf(const char* restrict format, ...);
64*700637cbSDimitry Andric int snprintf(char* restrict s, size_t n, const char* restrict format, ...);    // C99
65*700637cbSDimitry Andric int sprintf(char* restrict s, const char* restrict format, ...);
66*700637cbSDimitry Andric int sscanf(const char* restrict s, const char* restrict format, ...);
67*700637cbSDimitry Andric int vfprintf(FILE* restrict stream, const char* restrict format, va_list arg);
68*700637cbSDimitry Andric int vfscanf(FILE* restrict stream, const char* restrict format, va_list arg);  // C99
69*700637cbSDimitry Andric int vprintf(const char* restrict format, va_list arg);
70*700637cbSDimitry Andric int vscanf(const char* restrict format, va_list arg);                          // C99
71*700637cbSDimitry Andric int vsnprintf(char* restrict s, size_t n, const char* restrict format,         // C99
72*700637cbSDimitry Andric               va_list arg);
73*700637cbSDimitry Andric int vsprintf(char* restrict s, const char* restrict format, va_list arg);
74*700637cbSDimitry Andric int vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99
75*700637cbSDimitry Andric int fgetc(FILE* stream);
76*700637cbSDimitry Andric char* fgets(char* restrict s, int n, FILE* restrict stream);
77*700637cbSDimitry Andric int fputc(int c, FILE* stream);
78*700637cbSDimitry Andric int fputs(const char* restrict s, FILE* restrict stream);
79*700637cbSDimitry Andric int getc(FILE* stream);
80*700637cbSDimitry Andric int getchar(void);
81*700637cbSDimitry Andric char* gets(char* s);  // removed in C++14
82*700637cbSDimitry Andric int putc(int c, FILE* stream);
83*700637cbSDimitry Andric int putchar(int c);
84*700637cbSDimitry Andric int puts(const char* s);
85*700637cbSDimitry Andric int ungetc(int c, FILE* stream);
86*700637cbSDimitry Andric size_t fread(void* restrict ptr, size_t size, size_t nmemb,
87*700637cbSDimitry Andric              FILE* restrict stream);
88*700637cbSDimitry Andric size_t fwrite(const void* restrict ptr, size_t size, size_t nmemb,
89*700637cbSDimitry Andric               FILE* restrict stream);
90*700637cbSDimitry Andric int fgetpos(FILE* restrict stream, fpos_t* restrict pos);
91*700637cbSDimitry Andric int fseek(FILE* stream, long offset, int whence);
92*700637cbSDimitry Andric int fsetpos(FILE*stream, const fpos_t* pos);
93*700637cbSDimitry Andric long ftell(FILE* stream);
94*700637cbSDimitry Andric void rewind(FILE* stream);
95*700637cbSDimitry Andric void clearerr(FILE* stream);
96*700637cbSDimitry Andric int feof(FILE* stream);
97*700637cbSDimitry Andric int ferror(FILE* stream);
98*700637cbSDimitry Andric void perror(const char* s);
99*700637cbSDimitry Andric */
100*700637cbSDimitry Andric 
101*700637cbSDimitry Andric #  include <__cxx03/__config>
102*700637cbSDimitry Andric 
103*700637cbSDimitry Andric #  if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
104*700637cbSDimitry Andric #    pragma GCC system_header
105*700637cbSDimitry Andric #  endif
106*700637cbSDimitry Andric 
107*700637cbSDimitry Andric #  if __has_include_next(<stdio.h>)
108*700637cbSDimitry Andric #    include_next <stdio.h>
109*700637cbSDimitry Andric #  endif
110*700637cbSDimitry Andric 
111*700637cbSDimitry Andric #  ifdef __cplusplus
112*700637cbSDimitry Andric 
113*700637cbSDimitry Andric #    undef getc
114*700637cbSDimitry Andric #    undef putc
115*700637cbSDimitry Andric #    undef clearerr
116*700637cbSDimitry Andric #    undef feof
117*700637cbSDimitry Andric #    undef ferror
118*700637cbSDimitry Andric #    undef putchar
119*700637cbSDimitry Andric #    undef getchar
120*700637cbSDimitry Andric 
121*700637cbSDimitry Andric #  endif
122*700637cbSDimitry Andric 
123*700637cbSDimitry Andric #endif // _LIBCPP___CXX03_STDIO_H
124