#ifndef _STDLIB_H
#include
#define __need_size_t
#ifndef __need_malloc_and_calloc
# define __need_wchar_t
# define __need_NULL
#endif
#include
__BEGIN_DECLS
#ifndef __need_malloc_and_calloc
#define _STDLIB_H 1
#if defined __USE_XOPEN && !defined _SYS_WAIT_H
# include
# include
# ifdef __USE_BSD
# if defined __GNUC__ && !defined __cplusplus
# define __WAIT_INT(status) \
(__extension__ ({ union { __typeof(status) __in; int __i; } __u; \
__u.__in = (status); __u.__i; }))
# else
# define __WAIT_INT(status) (*(int *) &(status))
# endif
# if !defined __GNUC__ || __GNUC__ < 2 || defined __cplusplus
# define __WAIT_STATUS void *
# define __WAIT_STATUS_DEFN void *
# else
typedef union
{
union wait *__uptr;
int *__iptr;
} __WAIT_STATUS __attribute__ ((__transparent_union__));
# define __WAIT_STATUS_DEFN int *
# endif
# else
# define __WAIT_INT(status) (status)
# define __WAIT_STATUS int *
# define __WAIT_STATUS_DEFN int *
# endif
# define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status))
# define WTERMSIG(status) __WTERMSIG(__WAIT_INT(status))
# define WSTOPSIG(status) __WSTOPSIG(__WAIT_INT(status))
# define WIFEXITED(status) __WIFEXITED(__WAIT_INT(status))
# define WIFSIGNALED(status) __WIFSIGNALED(__WAIT_INT(status))
# define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status))
# ifdef __WIFCONTINUED
# define WIFCONTINUED(status) __WIFCONTINUED(__WAIT_INT(status))
# endif
#endif
__BEGIN_NAMESPACE_STD
typedef struct
{
int quot;
int rem;
} div_t;
#ifndef __ldiv_t_defined
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
# define __ldiv_t_defined 1
#endif
__END_NAMESPACE_STD
#if defined __USE_ISOC99 && !defined __lldiv_t_defined
__BEGIN_NAMESPACE_C99
__extension__ typedef struct
{
long long int quot;
long long int rem;
} lldiv_t;
# define __lldiv_t_defined 1
__END_NAMESPACE_C99
#endif
#define RAND_MAX 2147483647
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
#define MB_CUR_MAX (__ctype_get_mb_cur_max ())
extern size_t __ctype_get_mb_cur_max (void) __THROW;
__BEGIN_NAMESPACE_STD
extern double atof (__const char *__nptr)
__THROW __attribute_pure__ __nonnull ((1));
extern int atoi (__const char *__nptr)
__THROW __attribute_pure__ __nonnull ((1));
extern long int atol (__const char *__nptr)
__THROW __attribute_pure__ __nonnull ((1));
__END_NAMESPACE_STD
#if defined __USE_ISOC99 || (defined __GLIBC_HAVE_LONG_LONG && defined __USE_MISC)
__BEGIN_NAMESPACE_C99
__extension__ extern long long int atoll (__const char *__nptr)
__THROW __attribute_pure__ __nonnull ((1));
__END_NAMESPACE_C99
#endif
__BEGIN_NAMESPACE_STD
extern double strtod (__const char *__restrict __nptr,
char **__restrict __endptr) __THROW __nonnull ((1));
__END_NAMESPACE_STD
#ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
extern float strtof (__const char *__restrict __nptr,
char **__restrict __endptr) __THROW __nonnull ((1));
extern long double strtold (__const char *__restrict __nptr,
char **__restrict __endptr)
__THROW __nonnull ((1));
__END_NAMESPACE_C99
#endif
__BEGIN_NAMESPACE_STD
extern long int strtol (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__THROW __nonnull ((1));
extern unsigned long int strtoul (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__THROW __nonnull ((1));
__END_NAMESPACE_C99
#if defined __GLIBC_HAVE_LONG_LONG && defined __USE_BSD
__extension__
extern long long int strtoq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__THROW __nonnull ((1));
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__THROW __nonnull ((1));
#endif
#if defined __USE_ISOC99 || (defined __GLIBC_HAVE_LONG_LONG && defined __USE_MISC)
__BEGIN_NAMESPACE_C99
__extension__
extern long long int strtoll (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__THROW __nonnull ((1));
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__THROW __nonnull ((1));
__END_NAMESPACE_C99
#endif
#ifdef __USE_GNU
# include
extern long int strtol_l (__const char *__restrict __nptr,
char **__restrict __endptr, int __base,
__locale_t __loc) __THROW __nonnull ((1, 4));
extern unsigned long int strtoul_l (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, __locale_t __loc)
__THROW __nonnull ((1, 4));
__extension__
extern long long int strtoll_l (__const char *__restrict __nptr,
char **__restrict __endptr, int __base,
__locale_t __loc)
__THROW __nonnull ((1, 4));
__extension__
extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, __locale_t __loc)
__THROW __nonnull ((1, 4));
extern double strtod_l (__const char *__restrict __nptr,
char **__restrict __endptr, __locale_t __loc)
__THROW __nonnull ((1, 3));
extern float strtof_l (__const char *__restrict __nptr,
char **__restrict __endptr, __locale_t __loc)
__THROW __nonnull ((1, 3));
extern long double strtold_l (__const char *__restrict __nptr,
char **__restrict __endptr,
__locale_t __loc) __THROW __nonnull ((1, 3));
#endif
extern double __strtod_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group)
__THROW __nonnull ((1));
extern float __strtof_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group)
__THROW __nonnull ((1));
extern long double __strtold_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __group) __THROW __nonnull ((1));
#ifndef __strtol_internal_defined
extern long int __strtol_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
__THROW __nonnull ((1));
# define __strtol_internal_defined 1
#endif
#ifndef __strtoul_internal_defined
extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
__THROW __nonnull ((1));
# define __strtoul_internal_defined 1
#endif
#if defined __GNUC__ || defined __USE_ISOC99
# ifndef __strtoll_internal_defined
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
__THROW __nonnull ((1));
# define __strtoll_internal_defined 1
# endif
# ifndef __strtoull_internal_defined
__extension__
extern unsigned long long int __strtoull_internal (__const char *
__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
__THROW __nonnull ((1));
# define __strtoull_internal_defined 1
# endif
#endif
#ifdef __USE_EXTERN_INLINES
__BEGIN_NAMESPACE_STD
extern __inline double
__NTH (strtod (__const char *__restrict __nptr, char **__restrict __endptr))
{
return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
__NTH (strtol (__const char *__restrict __nptr, char **__restrict __endptr,
int __base))
{
return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
__NTH (strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
int __base))
{
return __strtoul_internal (__nptr, __endptr, __base, 0);
}
__END_NAMESPACE_STD
# ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
extern __inline float
__NTH (strtof (__const char *__restrict __nptr, char **__restrict __endptr))
{
return __strtof_internal (__nptr, __endptr, 0);
}
extern __inline long double
__NTH (strtold (__const char *__restrict __nptr, char **__restrict __endptr))
{
return __strtold_internal (__nptr, __endptr, 0);
}
__END_NAMESPACE_C99
# endif
# ifdef __USE_BSD
__extension__ extern __inline long long int
__NTH (strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base))
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
__NTH (strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base))
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
# endif
# if defined __USE_MISC || defined __USE_ISOC99
__BEGIN_NAMESPACE_C99
__extension__ extern __inline long long int
__NTH (strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
int __base))
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
__NTH (strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
int __base))
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
__END_NAMESPACE_C99
# endif
__BEGIN_NAMESPACE_STD
extern __inline double
__NTH (atof (__const char *__nptr))
{
return strtod (__nptr, (char **) NULL);
}
extern __inline int
__NTH (atoi (__const char *__nptr))
{
return (int) strtol (__nptr, (char **) NULL, 10);
}
extern __inline long int
__NTH (atol (__const char *__nptr))
{
return strtol (__nptr, (char **) NULL, 10);
}
__END_NAMESPACE_STD
# if defined __USE_MISC || defined __USE_ISOC99
__BEGIN_NAMESPACE_C99
__extension__ extern __inline long long int
__NTH (atoll (__const char *__nptr))
{
return strtoll (__nptr, (char **) NULL, 10);
}
__END_NAMESPACE_C99
# endif
#endif
#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED
extern char *l64a (long int __n) __THROW;
extern long int a64l (__const char *__s)
__THROW __attribute_pure__ __nonnull ((1));
#endif
#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED || defined __USE_BSD
# include
extern long int random (void) __THROW;
extern void srandom (unsigned int __seed) __THROW;
extern char *initstate (unsigned int __seed, char *__statebuf,
size_t __statelen) __THROW __nonnull ((2));
extern char *setstate (char *__statebuf) __THROW __nonnull ((1));
# ifdef __USE_MISC
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf,
int32_t *__restrict __result) __THROW __nonnull ((1, 2));
extern int srandom_r (unsigned int __seed, struct random_data *__buf)
__THROW __nonnull ((2));
extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
size_t __statelen,
struct random_data *__restrict __buf)
__THROW __nonnull ((2, 4));
extern int setstate_r (char *__restrict __statebuf,
struct random_data *__restrict __buf)
__THROW __nonnull ((1, 2));
# endif
#endif
__BEGIN_NAMESPACE_STD
extern int rand (void) __THROW;
extern void srand (unsigned int __seed) __THROW;
__END_NAMESPACE_STD
#ifdef __USE_POSIX
extern int rand_r (unsigned int *__seed) __THROW;
#endif
#if defined __USE_SVID || defined __USE_XOPEN
extern double drand48 (void) __THROW;
extern double erand48 (unsigned short int __xsubi[3]) __THROW __nonnull ((1));
extern long int lrand48 (void) __THROW;
extern long int nrand48 (unsigned short int __xsubi[3])
__THROW __nonnull ((1));
extern long int mrand48 (void) __THROW;
extern long int jrand48 (unsigned short int __xsubi[3])
__THROW __nonnull ((1));
extern void srand48 (long int __seedval) __THROW;
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
__THROW __nonnull ((1));
extern void lcong48 (unsigned short int __param[7]) __THROW __nonnull ((1));
# ifdef __USE_MISC
struct drand48_data
{
unsigned short int __x[3];
unsigned short int __old_x[3];
unsigned short int __c;
unsigned short int __init;
unsigned long long int __a;
};
extern int drand48_r (struct drand48_data *__restrict __buffer,
double *__restrict __result) __THROW __nonnull ((1, 2));
extern int erand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
double *__restrict __result) __THROW __nonnull ((1, 2));
extern int lrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__THROW __nonnull ((1, 2));
extern int nrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__THROW __nonnull ((1, 2));
extern int mrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__THROW __nonnull ((1, 2));
extern int jrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__THROW __nonnull ((1, 2));
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
__THROW __nonnull ((2));
extern int seed48_r (unsigned short int __seed16v[3],
struct drand48_data *__buffer) __THROW __nonnull ((1, 2));
extern int lcong48_r (unsigned short int __param[7],
struct drand48_data *__buffer)
__THROW __nonnull ((1, 2));
# endif
#endif
#endif
#ifndef __malloc_and_calloc_defined
# define __malloc_and_calloc_defined
__BEGIN_NAMESPACE_STD
extern void *malloc (size_t __size) __THROW __attribute_malloc__;
extern void *calloc (size_t __nmemb, size_t __size)
__THROW __attribute_malloc__;
__END_NAMESPACE_STD
#endif
#ifndef __need_malloc_and_calloc
__BEGIN_NAMESPACE_STD
extern void *realloc (void *__ptr, size_t __size) __THROW __attribute_malloc__;
extern void free (void *__ptr) __THROW;
__END_NAMESPACE_STD
#ifdef __USE_MISC
extern void cfree (void *__ptr) __THROW;
#endif
#if defined __USE_GNU || defined __USE_BSD || defined __USE_MISC
# include
#endif
#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
extern void *valloc (size_t __size) __THROW __attribute_malloc__;
#endif
#ifdef __USE_XOPEN2K
extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
__THROW __attribute_malloc__ __nonnull ((1));
#endif
__BEGIN_NAMESPACE_STD
extern void abort (void) __THROW __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) __THROW __nonnull ((1));
__END_NAMESPACE_STD
#ifdef __USE_MISC
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
__THROW __nonnull ((1));
#endif
__BEGIN_NAMESPACE_STD
extern void exit (int __status) __THROW __attribute__ ((__noreturn__));
__END_NAMESPACE_STD
#ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
extern void _Exit (int __status) __THROW __attribute__ ((__noreturn__));
__END_NAMESPACE_C99
#endif
__BEGIN_NAMESPACE_STD
extern char *getenv (__const char *__name) __THROW __nonnull ((1));
__END_NAMESPACE_STD
extern char *__secure_getenv (__const char *__name) __THROW __nonnull ((1));
#if defined __USE_SVID || defined __USE_XOPEN
extern int putenv (char *__string) __THROW __nonnull ((1));
#endif
#if defined __USE_BSD || defined __USE_XOPEN2K
extern int setenv (__const char *__name, __const char *__value, int __replace)
__THROW __nonnull ((2));
extern int unsetenv (__const char *__name) __THROW;
#endif
#ifdef __USE_MISC
extern int clearenv (void) __THROW;
#endif
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
extern char *mktemp (char *__template) __THROW __nonnull ((1));
# ifndef __USE_FILE_OFFSET64
extern int mkstemp (char *__template) __nonnull ((1));
# else
# ifdef __REDIRECT
extern int __REDIRECT (mkstemp, (char *__template), mkstemp64) __nonnull ((1));
# else
# define mkstemp mkstemp64
# endif
# endif
# ifdef __USE_LARGEFILE64
extern int mkstemp64 (char *__template) __nonnull ((1));
# endif
#endif
#ifdef __USE_BSD
extern char *mkdtemp (char *__template) __THROW __nonnull ((1));
#endif
__BEGIN_NAMESPACE_STD
extern int system (__const char *__command);
__END_NAMESPACE_STD
#ifdef __USE_GNU
extern char *canonicalize_file_name (__const char *__name)
__THROW __nonnull ((1));
#endif
#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
extern char *realpath (__const char *__restrict __name,
char *__restrict __resolved) __THROW;
#endif
#ifndef __COMPAR_FN_T
# define __COMPAR_FN_T
typedef int (*__compar_fn_t) (__const void *, __const void *);
# ifdef __USE_GNU
typedef __compar_fn_t comparison_fn_t;
# endif
#endif
__BEGIN_NAMESPACE_STD
extern void *bsearch (__const void *__key, __const void *__base,
size_t __nmemb, size_t __size, __compar_fn_t __compar)
__nonnull ((1, 2, 5));
extern void qsort (void *__base, size_t __nmemb, size_t __size,
__compar_fn_t __compar) __nonnull ((1, 4));
extern int abs (int __x) __THROW __attribute__ ((__const__));
extern long int labs (long int __x) __THROW __attribute__ ((__const__));
__END_NAMESPACE_STD
#ifdef __USE_ISOC99
__extension__ extern long long int llabs (long long int __x)
__THROW __attribute__ ((__const__));
#endif
__BEGIN_NAMESPACE_STD
extern div_t div (int __numer, int __denom)
__THROW __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
__THROW __attribute__ ((__const__));
__END_NAMESPACE_STD
#ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
__extension__ extern lldiv_t lldiv (long long int __numer,
long long int __denom)
__THROW __attribute__ ((__const__));
__END_NAMESPACE_C99
#endif
#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) __THROW __nonnull ((3, 4));
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) __THROW __nonnull ((3, 4));
extern char *gcvt (double __value, int __ndigit, char *__buf)
__THROW __nonnull ((3));
# ifdef __USE_MISC
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
__THROW __nonnull ((3, 4));
extern char *qfcvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
__THROW __nonnull ((3, 4));
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
__THROW __nonnull ((3));
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) __THROW __nonnull ((3, 4, 5));
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) __THROW __nonnull ((3, 4, 5));
extern int qecvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
__THROW __nonnull ((3, 4, 5));
extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
__THROW __nonnull ((3, 4, 5));
# endif
#endif
__BEGIN_NAMESPACE_STD
extern int mblen (__const char *__s, size_t __n) __THROW;
extern int mbtowc (wchar_t *__restrict __pwc,
__const char *__restrict __s, size_t __n) __THROW;
extern int wctomb (char *__s, wchar_t __wchar) __THROW;
extern size_t mbstowcs (wchar_t *__restrict __pwcs,
__const char *__restrict __s, size_t __n) __THROW;
extern size_t wcstombs (char *__restrict __s,
__const wchar_t *__restrict __pwcs, size_t __n)
__THROW;
__END_NAMESPACE_STD
#ifdef __USE_SVID
extern int rpmatch (__const char *__response) __THROW __nonnull ((1));
#endif
#ifdef __USE_XOPEN_EXTENDED
extern int getsubopt (char **__restrict __optionp,
char *__const *__restrict __tokens,
char **__restrict __valuep)
__THROW __nonnull ((1, 2, 3));
#endif
#ifdef __USE_XOPEN
extern void setkey (__const char *__key) __THROW __nonnull ((1));
#endif
#ifdef __USE_XOPEN2K
extern int posix_openpt (int __oflag);
#endif
#ifdef __USE_XOPEN
extern int grantpt (int __fd) __THROW;
extern int unlockpt (int __fd) __THROW;
extern char *ptsname (int __fd) __THROW;
#endif
#ifdef __USE_GNU
extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
__THROW __nonnull ((2));
extern int getpt (void);
#endif
#ifdef __USE_BSD
extern int getloadavg (double __loadavg[], int __nelem)
__THROW __nonnull ((1));
#endif
#endif
#undef __need_malloc_and_calloc
__END_DECLS
#endif
|