Luna/libc/include/stdio.h

119 lines
3.0 KiB
C
Raw Normal View History

/* stdio.h: Standard input/output. */
#ifndef _STDIO_H
#define _STDIO_H
#include <bits/seek.h>
#include <stdarg.h>
#include <sys/types.h>
typedef struct
{
int _fd;
int _err;
int _eof;
} FILE;
#define EOF -1
extern FILE* stdout;
extern FILE* stderr;
#define stdout stdout
#define stderr stderr
#ifdef __cplusplus
extern "C"
{
#endif
int fflush(FILE*);
2023-03-12 10:15:45 +00:00
/* Open a file and binds a stream to it. */
FILE* fopen(const char* path, const char* mode);
/* Bind a stream to a file descriptor. */
FILE* fdopen(int fd, const char* mode);
2023-03-12 10:15:45 +00:00
/* Close a file and frees up its stream. */
int fclose(FILE* stream);
2023-03-12 16:38:35 +00:00
/* Return the file descriptor associated with a stream. */
int fileno(FILE* stream);
2023-03-12 10:15:45 +00:00
/* Read arbitrarily sized items from a stream. */
size_t fread(void* buf, size_t size, size_t nmemb, FILE* stream);
/* Write arbitrarily sized items to a stream. */
size_t fwrite(const void* buf, size_t size, size_t nmemb, FILE* stream);
/* Move the file position. Clears the end-of-file indicator on success. */
int fseek(FILE* stream, long offset, int whence);
/* Return the current file position. */
long ftell(FILE* stream);
/* Rewind the file position and clear the error and end-of-file indicators. */
void rewind(FILE* stream);
/* Save the current file position. */
int fgetpos(FILE* stream, fpos_t* pos);
/* Restore a file position. */
int fsetpos(FILE* stream, const fpos_t* pos);
2023-03-12 10:15:45 +00:00
/* Return whether the error indicator was set in stream. */
int ferror(FILE* stream);
2023-03-12 10:15:45 +00:00
/* Return whether the end-of-file indicator was set in stream. */
int feof(FILE* stream);
/* Write a character to stream. */
int fputc(int c, FILE* stream);
/* Write a character to stream. */
int putc(int c, FILE* stream);
/* Write a character to standard output. */
int putchar(int c);
/* Write a string to stream. */
int fputs(const char* str, FILE* stream);
2023-03-12 10:15:45 +00:00
/* Clear the error and end-of-file indicators in stream. */
void clearerr(FILE* stream);
void setbuf(FILE*, char*);
int fprintf(FILE*, const char*, ...);
int vfprintf(FILE*, const char*, va_list);
/* Write formatted output into a buffer. */
int sprintf(char* buf, const char* format, ...);
/* Write up to max bytes of formatted output into a buffer. */
int snprintf(char* buf, size_t max, const char* format, ...);
/* Write formatted output into a buffer. */
int vsprintf(char*, const char*, va_list);
/* Write up to max bytes of formatted output into a buffer. */
int vsnprintf(char*, size_t, const char*, va_list);
2023-01-07 00:49:26 +00:00
/* Write formatted output to standard output. */
int printf(const char*, ...);
/* Write a string followed by a newline to standard output. */
int puts(const char* s);
/* Output a message to the console. */
2023-01-07 00:49:26 +00:00
int console_write(const char* msg, size_t size);
2023-01-13 20:08:10 +00:00
/* Write an error message to standard error. */
void perror(const char* s);
#ifdef __cplusplus
}
#endif
#endif