btrfs: [] on the end of a struct field is a variable length array.
[haiku.git] / headers / libs / libc++ / stdio.h
blob56fb2d83bb287c6dc985d3c6fceada64a7ebdf85
1 // -*- C++ -*-
2 //===---------------------------- stdio.h ---------------------------------===//
3 //
4 // The LLVM Compiler Infrastructure
5 //
6 // This file is dual licensed under the MIT and the University of Illinois Open
7 // Source Licenses. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
11 #if defined(__need_FILE) || defined(__need___FILE)
13 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
14 #pragma GCC system_header
15 #endif
17 #include_next <stdio.h>
19 #elif !defined(_LIBCPP_STDIO_H)
20 #define _LIBCPP_STDIO_H
23 stdio.h synopsis
25 Macros:
27 BUFSIZ
28 EOF
29 FILENAME_MAX
30 FOPEN_MAX
31 L_tmpnam
32 NULL
33 SEEK_CUR
34 SEEK_END
35 SEEK_SET
36 TMP_MAX
37 _IOFBF
38 _IOLBF
39 _IONBF
40 stderr
41 stdin
42 stdout
44 Types:
46 FILE
47 fpos_t
48 size_t
50 int remove(const char* filename);
51 int rename(const char* old, const char* new);
52 FILE* tmpfile(void);
53 char* tmpnam(char* s);
54 int fclose(FILE* stream);
55 int fflush(FILE* stream);
56 FILE* fopen(const char* restrict filename, const char* restrict mode);
57 FILE* freopen(const char* restrict filename, const char * restrict mode,
58 FILE * restrict stream);
59 void setbuf(FILE* restrict stream, char* restrict buf);
60 int setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size);
61 int fprintf(FILE* restrict stream, const char* restrict format, ...);
62 int fscanf(FILE* restrict stream, const char * restrict format, ...);
63 int printf(const char* restrict format, ...);
64 int scanf(const char* restrict format, ...);
65 int snprintf(char* restrict s, size_t n, const char* restrict format, ...); // C99
66 int sprintf(char* restrict s, const char* restrict format, ...);
67 int sscanf(const char* restrict s, const char* restrict format, ...);
68 int vfprintf(FILE* restrict stream, const char* restrict format, va_list arg);
69 int vfscanf(FILE* restrict stream, const char* restrict format, va_list arg); // C99
70 int vprintf(const char* restrict format, va_list arg);
71 int vscanf(const char* restrict format, va_list arg); // C99
72 int vsnprintf(char* restrict s, size_t n, const char* restrict format, // C99
73 va_list arg);
74 int vsprintf(char* restrict s, const char* restrict format, va_list arg);
75 int vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99
76 int fgetc(FILE* stream);
77 char* fgets(char* restrict s, int n, FILE* restrict stream);
78 int fputc(int c, FILE* stream);
79 int fputs(const char* restrict s, FILE* restrict stream);
80 int getc(FILE* stream);
81 int getchar(void);
82 char* gets(char* s); // removed in C++14
83 int putc(int c, FILE* stream);
84 int putchar(int c);
85 int puts(const char* s);
86 int ungetc(int c, FILE* stream);
87 size_t fread(void* restrict ptr, size_t size, size_t nmemb,
88 FILE* restrict stream);
89 size_t fwrite(const void* restrict ptr, size_t size, size_t nmemb,
90 FILE* restrict stream);
91 int fgetpos(FILE* restrict stream, fpos_t* restrict pos);
92 int fseek(FILE* stream, long offset, int whence);
93 int fsetpos(FILE*stream, const fpos_t* pos);
94 long ftell(FILE* stream);
95 void rewind(FILE* stream);
96 void clearerr(FILE* stream);
97 int feof(FILE* stream);
98 int ferror(FILE* stream);
99 void perror(const char* s);
102 #include <__config>
104 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
105 #pragma GCC system_header
106 #endif
108 #include_next <stdio.h>
110 #ifdef __cplusplus
112 // snprintf
113 #if defined(_LIBCPP_MSVCRT)
114 extern "C++" {
115 #include "support/win32/support.h"
117 #endif
119 #undef getc
120 #undef putc
121 #undef clearerr
122 #undef feof
123 #undef ferror
125 #endif
127 #endif // _LIBCPP_STDIO_H