#ifndef _LIBC_STDLIB_H #define _LIBC_STDLIB_H #pragma once #include #ifdef __cplusplus extern "C" { #endif #ifndef NULL #define NULL ((void *)0) #endif #define EXIT_SUCCESS 0 #define EXIT_FAILURE 1 #define RAND_MAX 0x7fffffff typedef struct { int quot; int rem; } div_t; typedef struct { long quot; long rem; } ldiv_t; void *malloc(size_t size); void free(void *ptr); void *calloc(size_t nmemb, size_t size); void *realloc(void *ptr, size_t size); int atoi(const char *s); long atol(const char *s); double atof(const char *s); int abs(int j); long labs(long j); void exit(int status) __attribute__((noreturn)); void abort(void) __attribute__((noreturn)); int atexit(void (*func)(void)); char *getenv(const char *name); int setenv(const char *name, const char *value, int overwrite); int unsetenv(const char *name); int putenv(char *string); void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); long strtol(const char *nptr, char **endptr, int base); unsigned long strtoul(const char *nptr, char **endptr, int base); long long strtoll(const char *nptr, char **endptr, int base); unsigned long long strtoull(const char *nptr, char **endptr, int base); long long atoll(const char *nptr); int mkstemp(char *template_); char *mktemp(char *template_); char *realpath(const char *path, char *resolved); size_t mbstowcs(wchar_t *dst, const char *src, size_t n); #define MB_CUR_MAX 1 int mblen(const char *s, size_t n); int mbtowc(wchar_t *pwc, const char *s, size_t n); int wctomb(char *s, wchar_t wc); double strtod(const char *nptr, char **endptr); float strtof(const char *nptr, char **endptr); long double strtold(const char *nptr, char **endptr); int rand(void); void srand(unsigned int seed); div_t div(int numer, int denom); ldiv_t ldiv(long numer, long denom); int system(const char *command); #ifdef __cplusplus } #endif #endif /* _LIBC_STDLIB_H */