PatchworkOS
Loading...
Searching...
No Matches
stdio.h
Go to the documentation of this file.
1#ifndef _STDIO_H
2#define _STDIO_H 1
3
4#include <stdarg.h>
5
6#if defined(__cplusplus)
7extern "C"
8{
9#endif
10
11#include "_internal/MAX_PATH.h"
12#include "_internal/NULL.h"
13#include "_internal/SEEK.h"
14#include "_internal/config.h"
15#include "_internal/fd_t.h"
16#include "_internal/size_t.h"
17
18#define _IOFBF (1u << 0)
19#define _IOLBF (1u << 1)
20#define _IONBF (1u << 2)
21
22typedef struct fpos fpos_t;
23typedef struct FILE FILE;
24
25#define EOF (-1)
26#define BUFSIZ 1024
27#define FOPEN_MAX 8
28#define FILENAME_MAX MAX_PATH
29
30#define L_tmpnam 46
31#define TMP_MAX 50
32
33extern FILE* stdin;
34extern FILE* stdout;
35extern FILE* stderr;
36
37_PUBLIC int remove(const char* filename);
38
39_PUBLIC int rename(const char* oldpath, const char* newpath);
40
42
43_PUBLIC char* tmpnam(char* s);
44
45_PUBLIC int fclose(FILE* stream);
46
47_PUBLIC int fflush(FILE* stream);
48
49_PUBLIC FILE* fopen(const char* _RESTRICT filename, const char* _RESTRICT mode);
50
51_PUBLIC FILE* freopen(const char* _RESTRICT filename, const char* _RESTRICT mode, FILE* _RESTRICT stream);
52
54
55_PUBLIC int setvbuf(FILE* _RESTRICT stream, char* _RESTRICT buf, int mode, size_t size);
56
57_PUBLIC int fprintf(FILE* _RESTRICT stream, const char* _RESTRICT format, ...);
58
59_PUBLIC int fscanf(FILE* _RESTRICT stream, const char* _RESTRICT format, ...);
60
61_PUBLIC int printf(const char* _RESTRICT format, ...);
62
63_PUBLIC int scanf(const char* _RESTRICT format, ...);
64
65_PUBLIC int snprintf(char* _RESTRICT s, size_t n, const char* _RESTRICT format, ...);
66
67_PUBLIC int sprintf(char* _RESTRICT s, const char* _RESTRICT format, ...);
68
69_PUBLIC int sscanf(const char* _RESTRICT s, const char* _RESTRICT format, ...);
70
71_PUBLIC int vfprintf(FILE* _RESTRICT stream, const char* _RESTRICT format, va_list arg);
72
73_PUBLIC int vfscanf(FILE* _RESTRICT stream, const char* _RESTRICT format, va_list arg);
74
75_PUBLIC int vprintf(const char* _RESTRICT format, va_list arg);
76
77_PUBLIC int vscanf(const char* _RESTRICT format, va_list arg);
78
79_PUBLIC int vsnprintf(char* _RESTRICT s, size_t n, const char* _RESTRICT format, va_list arg);
80
81_PUBLIC int vsprintf(char* _RESTRICT s, const char* _RESTRICT format, va_list arg);
82
83_PUBLIC int vsscanf(const char* _RESTRICT s, const char* _RESTRICT format, va_list arg);
84
85_PUBLIC int fgetc(FILE* stream);
86
87_PUBLIC char* fgets(char* _RESTRICT s, int n, FILE* _RESTRICT stream);
88
89_PUBLIC int fputc(int c, FILE* stream);
90
91_PUBLIC int fputs(const char* _RESTRICT s, FILE* _RESTRICT stream);
92
93_PUBLIC int getc(FILE* stream);
94
95_PUBLIC int getchar(void);
96
97_PUBLIC int putc(int c, FILE* stream);
98
99_PUBLIC int putchar(int c);
100
101_PUBLIC int puts(const char* s);
102
103_PUBLIC int ungetc(int c, FILE* stream);
104
105_PUBLIC size_t fread(void* _RESTRICT ptr, size_t size, size_t nmemb, FILE* _RESTRICT stream);
106
107_PUBLIC size_t fwrite(const void* _RESTRICT ptr, size_t size, size_t nmemb, FILE* _RESTRICT stream);
108
110
111_PUBLIC int fseek(FILE* stream, long int offset, int whence);
112
113_PUBLIC int fsetpos(FILE* stream, const fpos_t* pos);
114
115_PUBLIC long int ftell(FILE* stream);
116
117_PUBLIC void rewind(FILE* stream);
118
119_PUBLIC void clearerr(FILE* stream);
120
121_PUBLIC int feof(FILE* stream);
122
123_PUBLIC int ferror(FILE* stream);
124
125_PUBLIC void perror(const char* s);
126
127#if _USE_ANNEX_K == 1
128
129#define L_tmpnam_s L_tmpnam
130#define TMP_MAX_S TMP_MAX
131
132#include "_internal/errno_t.h"
133#include "_internal/rsize_t.h"
134
135_PUBLIC errno_t tmpfile_s(FILE* _RESTRICT* _RESTRICT streamptr);
136
137_PUBLIC errno_t fopen_s(FILE* _RESTRICT* _RESTRICT streamptr, const char* _RESTRICT filename,
138 const char* _RESTRICT mode);
139
140_PUBLIC errno_t freopen_s(FILE* _RESTRICT* _RESTRICT newstreamptr, const char* _RESTRICT filename,
141 const char* _RESTRICT mode, FILE* _RESTRICT stream);
142
143_PUBLIC errno_t tmpnam_s(char* s, rsize_t maxsize);
144_PUBLIC int fprintf_s(FILE* _RESTRICT stream, const char* _RESTRICT format, ...);
145_PUBLIC int fscanf_s(FILE* _RESTRICT stream, const char* _RESTRICT format, ...);
146_PUBLIC int printf_s(const char* _RESTRICT format, ...);
147_PUBLIC int scanf_s(const char* _RESTRICT format, ...);
148_PUBLIC int snprintf_s(char* _RESTRICT s, rsize_t n, const char* _RESTRICT format, ...);
149_PUBLIC int sprintf_s(char* _RESTRICT s, rsize_t n, const char* _RESTRICT format, ...);
150_PUBLIC int sscanf_s(const char* _RESTRICT s, const char* _RESTRICT format, ...);
151_PUBLIC int vfprintf_s(FILE* _RESTRICT stream, const char* _RESTRICT format, va_list arg);
152_PUBLIC int vfscanf_s(FILE* _RESTRICT stream, const char* _RESTRICT format, va_list arg);
153_PUBLIC int vprintf_s(const char* _RESTRICT format, va_list arg);
154_PUBLIC int vscanf_s(const char* _RESTRICT format, va_list arg);
155_PUBLIC int vsnprintf_s(char* _RESTRICT s, rsize_t n, const char* _RESTRICT format, va_list arg);
156_PUBLIC int vsprintf_s(char* _RESTRICT s, rsize_t n, const char* _RESTRICT format, va_list arg);
157_PUBLIC int vsscanf_s(const char* _RESTRICT s, const char* _RESTRICT format, va_list arg);
158_PUBLIC char* gets_s(char* s, rsize_t n);
159
160#endif
161
162#if defined(__cplusplus)
163}
164#endif
165
166#endif
int errno_t
Definition errno_t.h:4
#define _PUBLIC
Definition config.h:41
#define _RESTRICT
Definition config.h:17
__SIZE_TYPE__ rsize_t
Definition rsize_t.h:4
__builtin_va_list va_list
Definition stdarg.h:9
_PUBLIC int sscanf(const char *_RESTRICT s, const char *_RESTRICT format,...)
Definition sscanf.c:4
_PUBLIC char * fgets(char *_RESTRICT s, int n, FILE *_RESTRICT stream)
Definition fgets.c:5
_PUBLIC int fsetpos(FILE *stream, const fpos_t *pos)
_PUBLIC int getc(FILE *stream)
Definition getc.c:7
_PUBLIC int vsscanf(const char *_RESTRICT s, const char *_RESTRICT format, va_list arg)
Definition vsscanf.c:7
_PUBLIC FILE * tmpfile(void)
_PUBLIC int putc(int c, FILE *stream)
Definition putc.c:7
_PUBLIC int putchar(int c)
Definition putchar.c:7
_PUBLIC int ferror(FILE *stream)
Definition ferror.c:5
_PUBLIC int feof(FILE *stream)
Definition feof.c:5
_PUBLIC int vsnprintf(char *_RESTRICT s, size_t n, const char *_RESTRICT format, va_list arg)
Definition vsnprintf.c:5
_PUBLIC int rename(const char *oldpath, const char *newpath)
Definition rename.c:5
_PUBLIC int fgetpos(FILE *_RESTRICT stream, fpos_t *_RESTRICT pos)
_PUBLIC size_t fwrite(const void *_RESTRICT ptr, size_t size, size_t nmemb, FILE *_RESTRICT stream)
Definition fwrite.c:8
_PUBLIC int vscanf(const char *_RESTRICT format, va_list arg)
_PUBLIC int fgetc(FILE *stream)
Definition fgetc.c:7
_PUBLIC int getchar(void)
Definition getchar.c:7
_PUBLIC int fflush(FILE *stream)
Definition fflush.c:6
_PUBLIC int vsprintf(char *_RESTRICT s, const char *_RESTRICT format, va_list arg)
Definition vsprintf.c:5
_PUBLIC int vprintf(const char *_RESTRICT format, va_list arg)
Definition vprintf.c:5
_PUBLIC int printf(const char *_RESTRICT format,...)
Definition printf.c:5
_PUBLIC int fscanf(FILE *_RESTRICT stream, const char *_RESTRICT format,...)
Definition fscanf.c:4
_PUBLIC int fputc(int c, FILE *stream)
Definition fputc.c:7
_PUBLIC int puts(const char *s)
_PUBLIC void setbuf(FILE *_RESTRICT stream, char *_RESTRICT buf)
_PUBLIC int vfscanf(FILE *_RESTRICT stream, const char *_RESTRICT format, va_list arg)
Definition vfscanf.c:8
_PUBLIC FILE * fopen(const char *_RESTRICT filename, const char *_RESTRICT mode)
Definition fopen.c:27
_PUBLIC size_t fread(void *_RESTRICT ptr, size_t size, size_t nmemb, FILE *_RESTRICT stream)
Definition fread.c:7
_PUBLIC void clearerr(FILE *stream)
Definition clearerr.c:5
_PUBLIC int setvbuf(FILE *_RESTRICT stream, char *_RESTRICT buf, int mode, size_t size)
_PUBLIC int scanf(const char *_RESTRICT format,...)
_PUBLIC int fclose(FILE *stream)
Definition fclose.c:7
_PUBLIC FILE * freopen(const char *_RESTRICT filename, const char *_RESTRICT mode, FILE *_RESTRICT stream)
_PUBLIC int ungetc(int c, FILE *stream)
Definition ungetc.c:5
_PUBLIC void perror(const char *s)
Definition perror.c:5
FILE * stdout
Definition std_streams.c:17
FILE * stderr
Definition std_streams.c:18
FILE * stdin
Definition std_streams.c:16
_PUBLIC long int ftell(FILE *stream)
Definition ftell.c:7
_PUBLIC int remove(const char *filename)
Definition remove.c:6
_PUBLIC void rewind(FILE *stream)
_PUBLIC int fprintf(FILE *_RESTRICT stream, const char *_RESTRICT format,...)
Definition fprintf.c:5
_PUBLIC char * tmpnam(char *s)
_PUBLIC int snprintf(char *_RESTRICT s, size_t n, const char *_RESTRICT format,...)
Definition snprintf.c:3
_PUBLIC int vfprintf(FILE *_RESTRICT stream, const char *_RESTRICT format, va_list arg)
Definition vfprintf.c:8
_PUBLIC int fputs(const char *_RESTRICT s, FILE *_RESTRICT stream)
Definition fputs.c:5
_PUBLIC int fseek(FILE *stream, long int offset, int whence)
_PUBLIC int sprintf(char *_RESTRICT s, const char *_RESTRICT format,...)
Definition sprintf.c:5
Definition file.h:34
fpos_t pos
Definition file.h:41
char filename[MAX_PATH]
Definition file.h:46
uint8_t * buf
Definition file.h:37
Definition file.h:27