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