81 lines
2.5 KiB
C
81 lines
2.5 KiB
C
/* Simple libc header for TCC
|
|
*
|
|
* Add any function you want from the libc there. This file is here
|
|
* only for your convenience so that you do not need to put the whole
|
|
* glibc include files on your floppy disk
|
|
*/
|
|
#ifndef _TCCLIB_H
|
|
#define _TCCLIB_H
|
|
|
|
#include <stddef.h>
|
|
#include <stdarg.h>
|
|
|
|
/* stdlib.h */
|
|
void* calloc(size_t nmemb, size_t size);
|
|
void* malloc(size_t size);
|
|
void free(void* ptr);
|
|
void* realloc(void* ptr, size_t size);
|
|
int atoi(const char* nptr);
|
|
long int strtol(const char* nptr, char** endptr, int base);
|
|
unsigned long int strtoul(const char* nptr, char** endptr, int base);
|
|
void exit(int);
|
|
|
|
/* stdio.h */
|
|
typedef struct __FILE FILE;
|
|
#define EOF (-1)
|
|
extern FILE* stdin;
|
|
extern FILE* stdout;
|
|
extern FILE* stderr;
|
|
FILE* fopen(const char* path, const char* mode);
|
|
FILE* fdopen(int fildes, const char* mode);
|
|
FILE* freopen(const char* path, const char* mode, FILE* stream);
|
|
int fclose(FILE* stream);
|
|
size_t fread(void* ptr, size_t size, size_t nmemb, FILE* stream);
|
|
size_t fwrite(void* ptr, size_t size, size_t nmemb, FILE* stream);
|
|
int fgetc(FILE* stream);
|
|
char* fgets(char* s, int size, FILE* stream);
|
|
int getc(FILE* stream);
|
|
int getchar(void);
|
|
char* gets(char* s);
|
|
int ungetc(int c, FILE* stream);
|
|
int fflush(FILE* stream);
|
|
int putchar(int c);
|
|
|
|
int printf(const char* format, ...);
|
|
int fprintf(FILE* stream, const char* format, ...);
|
|
int sprintf(char* str, const char* format, ...);
|
|
int snprintf(char* str, size_t size, const char* format, ...);
|
|
int asprintf(char** strp, const char* format, ...);
|
|
int dprintf(int fd, const char* format, ...);
|
|
int vprintf(const char* format, va_list ap);
|
|
int vfprintf(FILE* stream, const char* format, va_list ap);
|
|
int vsprintf(char* str, const char* format, va_list ap);
|
|
int vsnprintf(char* str, size_t size, const char* format, va_list ap);
|
|
int vasprintf(char** strp, const char* format, va_list ap);
|
|
int vdprintf(int fd, const char* format, va_list ap);
|
|
|
|
void perror(const char* s);
|
|
|
|
/* string.h */
|
|
char* strcat(char* dest, const char* src);
|
|
char* strchr(const char* s, int c);
|
|
char* strrchr(const char* s, int c);
|
|
char* strcpy(char* dest, const char* src);
|
|
void* memcpy(void* dest, const void* src, size_t n);
|
|
void* memmove(void* dest, const void* src, size_t n);
|
|
void* memset(void* s, int c, size_t n);
|
|
char* strdup(const char* s);
|
|
size_t strlen(const char* s);
|
|
|
|
/* dlfcn.h */
|
|
#define RTLD_LAZY 0x001
|
|
#define RTLD_NOW 0x002
|
|
#define RTLD_GLOBAL 0x100
|
|
|
|
void* dlopen(const char* filename, int flag);
|
|
const char* dlerror(void);
|
|
void* dlsym(void* handle, char* symbol);
|
|
int dlclose(void* handle);
|
|
|
|
#endif /* _TCCLIB_H */
|