/* * C89 stdio.h file. * * Copyright © 2022-2026 Samuel Lidén Borell * * SPDX-License-Identifier: EUPL-1.2+ OR LGPL-2.1-or-later */ #ifndef _DS9K_STDIO_H #define _DS9K_STDIO_H #include #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