stdlib.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * stdlib.h - standard library
  3. *
  4. * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  5. * See the copyright notice in the ACK home directory, in the file "Copyright".
  6. */
  7. /* $Id$ */
  8. #ifndef _STDLIB_H
  9. #define _STDLIB_H
  10. #include <stddef.h>
  11. #define EXIT_FAILURE 1
  12. #define EXIT_SUCCESS 0
  13. #define RAND_MAX 32767
  14. #define MB_CUR_MAX sizeof(wchar_t)
  15. typedef struct { int quot, rem; } div_t;
  16. typedef struct { long quot, rem; } ldiv_t;
  17. extern double atof(const char *_nptr);
  18. extern int atoi(const char *_nptr);
  19. extern long atol(const char *_nptr);
  20. extern double strtod(const char *_nptr, char **_endptr);
  21. extern long strtol(const char *_nptr, char **_endptr, int _base);
  22. extern unsigned long strtoul(const char *_nptr, char **_endptr, int _base);
  23. extern int rand(void);
  24. extern void srand(unsigned int _seed);
  25. extern void* calloc(size_t _nmemb, size_t _size);
  26. extern void free(void *_ptr);
  27. extern void* malloc(size_t _size);
  28. extern void* realloc(void *_ptr, size_t _size);
  29. extern void abort(void);
  30. extern int atexit(void (*_func)(void));
  31. extern void exit(int _status);
  32. extern void _Exit(int _status);
  33. extern char* getenv(const char *_name);
  34. extern int system(const char *_string);
  35. extern void* bsearch(const void *_key, const void *_base,
  36. size_t _nmemb, size_t _size,
  37. int (*_compar)(const void *, const void *));
  38. extern void qsort(void *_base, size_t _nmemb, size_t _size,
  39. int (*_compar)(const void *, const void *));
  40. extern int abs(int _j);
  41. extern div_t div(int _numer, int _denom);
  42. extern long labs(long _j);
  43. extern ldiv_t ldiv(long _numer, long _denom);
  44. extern int mblen(const char *_s, size_t _n);
  45. extern int mbtowc(wchar_t *_pwc, const char *_s, size_t _n);
  46. extern int wctomb(char *_s, wchar_t _wchar);
  47. extern size_t mbstowcs(wchar_t *_pwcs, const char *_s, size_t _n);
  48. extern size_t wcstombs(char *_s, const wchar_t *_pwcs, size_t _n);
  49. /* Extensions (not part of the standard) */
  50. #define atof(n) strtod(n, (char **)NULL)
  51. #define atoi(n) ((int)strtol(n, (char **)NULL, 10))
  52. #define atol(n) strtol(n, (char **)NULL, 10)
  53. #define atoll(n) strtoll(n, (char **)NULL, 10)
  54. #define mblen(s, n) mbtowc((wchar_t *)0, s, n)
  55. #endif