LibC: Write mostly functioning stdio
This commit is contained in:
@@ -16,6 +16,9 @@
|
||||
#define ENOBUFS 12
|
||||
#define ENOTTY 13
|
||||
#define ENOTBLK 14
|
||||
#define EMFILE 15
|
||||
|
||||
#define errno errno
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
@@ -1,8 +1,18 @@
|
||||
#pragma once
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#define O_RDONLY (1 << 0)
|
||||
#define O_WRONLY (1 << 1)
|
||||
#define O_RDWR (O_RDONLY | O_WRONLY)
|
||||
#define O_ACCMODE (O_RDONLY | O_WRONLY)
|
||||
#define O_EXCL (1 << 2)
|
||||
#define O_CREAT (1 << 3)
|
||||
#define O_TRUNC (1 << 4)
|
||||
#define O_APPEND (1 << 5)
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
int open(const char*, int, ...);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
@@ -18,28 +18,83 @@
|
||||
#define EXIT_FAILURE 1
|
||||
#define EXIT_SUCCESS 0
|
||||
|
||||
#define L_ctermid 50
|
||||
|
||||
#define BUFSIZ 128
|
||||
|
||||
#define FOPEN_MAX 16
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
struct FILE;
|
||||
typedef struct FILE FILE;
|
||||
|
||||
typedef uint64_t fpos_t;
|
||||
|
||||
extern FILE* stdin;
|
||||
extern FILE* stdout;
|
||||
extern FILE* stderr;
|
||||
|
||||
FILE* fopen(const char* __restrict__, const char* __restrict__);
|
||||
int fclose(FILE*);
|
||||
int fflush(FILE*);
|
||||
int fprintf(FILE* __restrict__, const char* __restrict__, ...);
|
||||
int fseek(FILE*, long, int);
|
||||
int printf(const char* __restrict__, ...);
|
||||
int putchar(int);
|
||||
int puts(const char*);
|
||||
int vfprintf(FILE* __restrict__, const char* __restrict__, va_list);
|
||||
long ftell(FILE*);
|
||||
size_t fread(void* __restrict__, size_t, size_t, FILE*);
|
||||
size_t fwrite(void const* __restrict__, size_t, size_t, FILE*);
|
||||
void setbuf(FILE* __restrict__, char* __restrict__);
|
||||
int sprintf(char* __restrict__, const char* __restrict__, ...);
|
||||
void clearerr(FILE*);
|
||||
char* ctermid(char*);
|
||||
int fclose(FILE*);
|
||||
FILE* fdopen(int, const char*);
|
||||
int feof(FILE*);
|
||||
int ferror(FILE*);
|
||||
int fflush(FILE*);
|
||||
int fgetc(FILE*);
|
||||
int fgetpos(FILE*, fpos_t*);
|
||||
char* fgets(char*, int, FILE*);
|
||||
int fileno(FILE*);
|
||||
void flockfile(FILE*);
|
||||
FILE* fopen(const char*, const char*);
|
||||
int fprintf(FILE*, const char*, ...);
|
||||
int fputc(int, FILE*);
|
||||
int fputs(const char*, FILE*);
|
||||
size_t fread(void*, size_t, size_t, FILE*);
|
||||
FILE* freopen(const char*, const char*, FILE*);
|
||||
int fscanf(FILE*, const char*, ...);
|
||||
int fseek(FILE*, long, int);
|
||||
int fseeko(FILE*, off_t, int);
|
||||
int fsetpos(FILE*, const fpos_t*);
|
||||
long ftell(FILE*);
|
||||
off_t ftello(FILE*);
|
||||
int ftrylockfile(FILE*);
|
||||
void funlockfile(FILE*);
|
||||
size_t fwrite(const void*, size_t, size_t, FILE*);
|
||||
int getc(FILE*);
|
||||
int getchar(void);
|
||||
int getc_unlocked(FILE*);
|
||||
int getchar_unlocked(void);
|
||||
char* gets(char*);
|
||||
int pclose(FILE*);
|
||||
void perror(const char*);
|
||||
FILE* popen(const char*, const char*);
|
||||
int printf(const char*, ...);
|
||||
int putc(int, FILE*);
|
||||
int putchar(int);
|
||||
int putc_unlocked(int, FILE*);
|
||||
int putchar_unlocked(int);
|
||||
int puts(const char*);
|
||||
int remove(const char*);
|
||||
int rename(const char*, const char*);
|
||||
void rewind(FILE*);
|
||||
int scanf(const char*, ...);
|
||||
void setbuf(FILE*, char*);
|
||||
int setvbuf(FILE*, char*, int, size_t);
|
||||
int snprintf(char*, size_t, const char*, ...);
|
||||
int sprintf(char*, const char*, ...);
|
||||
int sscanf(const char*, const char*, ...);
|
||||
char* tempnam(const char*, const char*);
|
||||
FILE* tmpfile(void);
|
||||
char* tmpnam(char*);
|
||||
int ungetc(int, FILE*);
|
||||
int vfprintf(FILE*, const char*, va_list);
|
||||
int vfscanf(FILE*, const char*, va_list);
|
||||
int vprintf(const char*, va_list);
|
||||
int vscanf(const char*, va_list);
|
||||
int vsnprintf(char*, size_t, const char*, va_list);
|
||||
int vsprintf(char*, const char*, va_list);
|
||||
int vsscanf(const char*, const char*, va_list);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
Reference in New Issue
Block a user