xref: /openbsd-src/gnu/llvm/libcxx/include/stdio.h (revision dc37c87a60a1e3d67c2ac5d5c5b9fc1e4af89632)
146035553Spatrick // -*- C++ -*-
2*dc37c87aSrobert //===----------------------------------------------------------------------===//
346035553Spatrick //
446035553Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
546035553Spatrick // See https://llvm.org/LICENSE.txt for license information.
646035553Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
746035553Spatrick //
846035553Spatrick //===----------------------------------------------------------------------===//
946035553Spatrick 
1046035553Spatrick #if defined(__need_FILE) || defined(__need___FILE)
1146035553Spatrick 
1246035553Spatrick #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
1346035553Spatrick #  pragma GCC system_header
1446035553Spatrick #endif
1546035553Spatrick 
1646035553Spatrick #include_next <stdio.h>
1746035553Spatrick 
1846035553Spatrick #elif !defined(_LIBCPP_STDIO_H)
1946035553Spatrick #define _LIBCPP_STDIO_H
2046035553Spatrick 
2146035553Spatrick /*
2246035553Spatrick     stdio.h synopsis
2346035553Spatrick 
2446035553Spatrick Macros:
2546035553Spatrick 
2646035553Spatrick     BUFSIZ
2746035553Spatrick     EOF
2846035553Spatrick     FILENAME_MAX
2946035553Spatrick     FOPEN_MAX
3046035553Spatrick     L_tmpnam
3146035553Spatrick     NULL
3246035553Spatrick     SEEK_CUR
3346035553Spatrick     SEEK_END
3446035553Spatrick     SEEK_SET
3546035553Spatrick     TMP_MAX
3646035553Spatrick     _IOFBF
3746035553Spatrick     _IOLBF
3846035553Spatrick     _IONBF
3946035553Spatrick     stderr
4046035553Spatrick     stdin
4146035553Spatrick     stdout
4246035553Spatrick 
4346035553Spatrick Types:
4446035553Spatrick 
4546035553Spatrick FILE
4646035553Spatrick fpos_t
4746035553Spatrick size_t
4846035553Spatrick 
4946035553Spatrick int remove(const char* filename);
5046035553Spatrick int rename(const char* old, const char* new);
5146035553Spatrick FILE* tmpfile(void);
5246035553Spatrick char* tmpnam(char* s);
5346035553Spatrick int fclose(FILE* stream);
5446035553Spatrick int fflush(FILE* stream);
5546035553Spatrick FILE* fopen(const char* restrict filename, const char* restrict mode);
5646035553Spatrick FILE* freopen(const char* restrict filename, const char * restrict mode,
5746035553Spatrick               FILE * restrict stream);
5846035553Spatrick void setbuf(FILE* restrict stream, char* restrict buf);
5946035553Spatrick int setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size);
6046035553Spatrick int fprintf(FILE* restrict stream, const char* restrict format, ...);
6146035553Spatrick int fscanf(FILE* restrict stream, const char * restrict format, ...);
6246035553Spatrick int printf(const char* restrict format, ...);
6346035553Spatrick int scanf(const char* restrict format, ...);
6446035553Spatrick int snprintf(char* restrict s, size_t n, const char* restrict format, ...);    // C99
6546035553Spatrick int sprintf(char* restrict s, const char* restrict format, ...);
6646035553Spatrick int sscanf(const char* restrict s, const char* restrict format, ...);
6746035553Spatrick int vfprintf(FILE* restrict stream, const char* restrict format, va_list arg);
6846035553Spatrick int vfscanf(FILE* restrict stream, const char* restrict format, va_list arg);  // C99
6946035553Spatrick int vprintf(const char* restrict format, va_list arg);
7046035553Spatrick int vscanf(const char* restrict format, va_list arg);                          // C99
7146035553Spatrick int vsnprintf(char* restrict s, size_t n, const char* restrict format,         // C99
7246035553Spatrick               va_list arg);
7346035553Spatrick int vsprintf(char* restrict s, const char* restrict format, va_list arg);
7446035553Spatrick int vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99
7546035553Spatrick int fgetc(FILE* stream);
7646035553Spatrick char* fgets(char* restrict s, int n, FILE* restrict stream);
7746035553Spatrick int fputc(int c, FILE* stream);
7846035553Spatrick int fputs(const char* restrict s, FILE* restrict stream);
7946035553Spatrick int getc(FILE* stream);
8046035553Spatrick int getchar(void);
8146035553Spatrick char* gets(char* s);  // removed in C++14
8246035553Spatrick int putc(int c, FILE* stream);
8346035553Spatrick int putchar(int c);
8446035553Spatrick int puts(const char* s);
8546035553Spatrick int ungetc(int c, FILE* stream);
8646035553Spatrick size_t fread(void* restrict ptr, size_t size, size_t nmemb,
8746035553Spatrick              FILE* restrict stream);
8846035553Spatrick size_t fwrite(const void* restrict ptr, size_t size, size_t nmemb,
8946035553Spatrick               FILE* restrict stream);
9046035553Spatrick int fgetpos(FILE* restrict stream, fpos_t* restrict pos);
9146035553Spatrick int fseek(FILE* stream, long offset, int whence);
9246035553Spatrick int fsetpos(FILE*stream, const fpos_t* pos);
9346035553Spatrick long ftell(FILE* stream);
9446035553Spatrick void rewind(FILE* stream);
9546035553Spatrick void clearerr(FILE* stream);
9646035553Spatrick int feof(FILE* stream);
9746035553Spatrick int ferror(FILE* stream);
9846035553Spatrick void perror(const char* s);
9946035553Spatrick */
10046035553Spatrick 
10146035553Spatrick #include <__config>
10246035553Spatrick 
10346035553Spatrick #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
10446035553Spatrick #  pragma GCC system_header
10546035553Spatrick #endif
10646035553Spatrick 
107*dc37c87aSrobert #  if __has_include_next(<stdio.h>)
10846035553Spatrick #    include_next <stdio.h>
109*dc37c87aSrobert #  endif
11046035553Spatrick 
11146035553Spatrick #ifdef __cplusplus
11246035553Spatrick 
11346035553Spatrick #undef getc
11446035553Spatrick #undef putc
11546035553Spatrick #undef clearerr
11646035553Spatrick #undef feof
11746035553Spatrick #undef ferror
118b0c4c902Spatrick #undef putchar
119b0c4c902Spatrick #undef getchar
12046035553Spatrick 
12146035553Spatrick #endif
12246035553Spatrick 
12346035553Spatrick #endif // _LIBCPP_STDIO_H
124