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