aboutsummaryrefslogtreecommitdiff
path: root/include/stdio.h
blob: 4ac6262c03285fc907e9fdcf4e181b178be6cdbd558a3c4645cb4a6fe99e19ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

/*
 * C89 stdio.h file.
 *
 * Copyright © 2022-2026 Samuel Lidén Borell <samuel@kodafritt.se>
 *
 * SPDX-License-Identifier: EUPL-1.2+ OR LGPL-2.1-or-later
 */

#ifndef _DS9K_STDIO_H
#define _DS9K_STDIO_H

#include <stdarg.h>
#define _DS9K_NEED_NULL
#define _DS9K_NEED_SIZE_T
#include "ds9k_internal.h"

#define FILE _P9KCC_FILE

#define putc(c, f) \
        (LIKELY((f)->buff && (f)->buffp != (f)->buffend && \
                !(f)->is_unbuffered && (c) != '\n') ? \
            (int)(unsigned char)(*((f)->buffp++) = (unsigned char)(c)) : \
            fputc(c, f))

extern FILE *stdout;
extern FILE *stderr;

#define EOF -1

int vfprintf(FILE *f, const char *fmt, va_list ap);
int fputc(int c, FILE *f);
int fputs(const char *s, FILE *f);
int fprintf(FILE *f, const char *fmt, ...);
int printf(const char *fmt, ...);
int vsprintf(char *s, const char *fmt, va_list ap);
int sprintf(char *s, const char *fmt, ...);
int puts(const char *s);
void perror(const char *s);
FILE *fopen(const char *filename, const char *mode);
int fclose(FILE *file);
int fflush(FILE *file);
int ferror(FILE *file);
size_t fread(void *buffer, size_t size, size_t nmemb, FILE *file);
size_t fwrite(const void *buffer, size_t size, size_t nmemb, FILE *file);
int remove(const char *filename);

#endif