| #ifndef _STDLIB_H |
| #define _STDLIB_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #undef NULL |
| #ifdef __cplusplus |
| #define NULL 0 |
| #else |
| #define NULL ((void*)0) |
| #endif |
| |
| #define __NEED_size_t |
| #define __NEED_wchar_t |
| |
| #include <bits/alltypes.h> |
| |
| int atoi (const char *); |
| long atol (const char *); |
| long long atoll (const char *); |
| double atof (const char *); |
| |
| float strtof (const char *, char **); |
| double strtod (const char *, char **); |
| long double strtold (const char *, char **); |
| |
| long strtol (const char *, char **, int); |
| unsigned long strtoul (const char *, char **, int); |
| long long strtoll (const char *, char **, int); |
| unsigned long long strtoull (const char *, char **, int); |
| |
| int rand (void); |
| void srand (unsigned); |
| |
| void *malloc (size_t); |
| void *calloc (size_t, size_t); |
| void *realloc (void *, size_t); |
| void free (void *); |
| |
| void abort (void); |
| int atexit (void (*) (void)); |
| void exit (int); |
| void _Exit (int); |
| int at_quick_exit (void (*) (void)); |
| void quick_exit (int); |
| |
| char *getenv (const char *); |
| |
| int system (const char *); |
| |
| void *bsearch (const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); |
| void qsort (void *, size_t, size_t, int (*)(const void *, const void *)); |
| |
| int abs (int); |
| long labs (long); |
| long long llabs (long long); |
| |
| typedef struct { int quot, rem; } div_t; |
| typedef struct { long quot, rem; } ldiv_t; |
| typedef struct { long long quot, rem; } lldiv_t; |
| |
| div_t div (int, int); |
| ldiv_t ldiv (long, long); |
| lldiv_t lldiv (long long, long long); |
| |
| int mblen (const char *, size_t); |
| int mbtowc (wchar_t *, const char *, size_t); |
| int wctomb (char *, wchar_t); |
| size_t mbstowcs (wchar_t *, const char *, size_t); |
| size_t wcstombs (char *, const wchar_t *, size_t); |
| |
| #define EXIT_FAILURE 1 |
| #define EXIT_SUCCESS 0 |
| |
| #define MB_CUR_MAX ((size_t)+4) |
| |
| #define RAND_MAX (0x7fffffff) |
| |
| |
| #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ |
| || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ |
| || defined(_BSD_SOURCE) |
| |
| #ifndef WEXITSTATUS |
| #define WEXITSTATUS(s) (((s) & 0xff00) >> 8) |
| #define WTERMSIG(s) ((s) & 0x7f) |
| #define WSTOPSIG(s) WEXITSTATUS(s) |
| #define WCOREDUMP(s) ((s) & 0x80) |
| #define WIFEXITED(s) (!WTERMSIG(s)) |
| #define WIFSTOPPED(s) (((s) & 0xff) == 0x7f) |
| #define WIFSIGNALED(s) (((signed char) (((s) & 0x7f) + 1) >> 1) > 0) |
| #define WIFCONTINUED(s) ((s) == 0xffff) |
| #endif |
| |
| int posix_memalign (void **, size_t, size_t); |
| int setenv (const char *, const char *, int); |
| int unsetenv (const char *); |
| int mkstemp (char *); |
| char *mkdtemp (char *); |
| int getsubopt (char **, char *const *, char **); |
| int rand_r (unsigned *); |
| |
| #endif |
| |
| |
| #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ |
| || defined(_BSD_SOURCE) |
| char *realpath (const char *, char *); |
| long int random (void); |
| void srandom (unsigned int); |
| char *initstate (unsigned int, char *, size_t); |
| char *setstate (char *); |
| #endif |
| |
| #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) |
| int putenv (char *); |
| int posix_openpt (int); |
| int grantpt (int); |
| int unlockpt (int); |
| char *ptsname (int); |
| char *l64a (long); |
| long a64l (const char *); |
| void setkey (const char *); |
| double drand48 (void); |
| double erand48 (unsigned short [3]); |
| long int lrand48 (void); |
| long int nrand48 (unsigned short [3]); |
| long mrand48 (void); |
| long jrand48 (unsigned short [3]); |
| void srand48 (long); |
| unsigned short *seed48 (unsigned short [3]); |
| void lcong48 (unsigned short [7]); |
| #endif |
| |
| #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| #include <alloca.h> |
| char *mktemp (char *); |
| void *valloc (size_t); |
| void *memalign(size_t, size_t); |
| #endif |
| |
| #ifdef _GNU_SOURCE |
| int clearenv(void); |
| int ptsname_r(int, char *, size_t); |
| char *ecvt(double, int, int *, int *); |
| char *fcvt(double, int, int *, int *); |
| char *gcvt(double, int, char *); |
| #endif |
| |
| #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) |
| #define mkstemp64 mkstemp |
| #endif |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |