home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c220 / 4.ddi / INC / STDLIB.H < prev    next >
Encoding:
C/C++ Source or Header  |  1990-12-16  |  4.6 KB  |  163 lines

  1. /*
  2.  *   stdlib.h -- ANSI 
  3.  *
  4.  *   Functions, types, and macros that are of general utility.
  5.  *
  6.  *           Copyright (c) 1990, MetaWare Incorporated
  7.  */
  8.  
  9. #ifndef _STDLIB_H
  10. #define _STDLIB_H
  11.  
  12. #ifndef _SIZE_T_DEFINED
  13. #define _SIZE_T_DEFINED
  14. typedef unsigned int size_t;
  15. #endif
  16.  
  17. #ifndef _WCHAR_T_DEFINED
  18. #define _WCHAR_T_DEFINED
  19. typedef char wchar_t;
  20. #endif
  21.  
  22. #define NULL ((void *)0)
  23.  
  24. /* MSVERSION has max and min defined here */
  25.  
  26. #define _MAX_PATH 144
  27. #define _MAX_DRIVE 3
  28. #define _MAX_DIR 130
  29. #define _MAX_FNAME 9
  30. #define _MAX_EXT 5
  31.  
  32. #if __HIGHC__
  33. extern int errno; /* errno is ansi, but doesn't belong in stdlib! */
  34. #endif
  35. extern int _doserrno;
  36. extern char * _sys_errlist[];
  37. extern int _sys_nerr;
  38.  
  39. extern char ** _environ;
  40. #if __HIGHC__
  41. extern char ** environ;
  42. #pragma alias(environ,"_environ");
  43. #endif
  44. extern unsigned int _psp;
  45. extern int _fmode;
  46.  
  47. extern unsigned char _osmajor;
  48. extern unsigned char _osminor;
  49.  
  50. #ifdef __HIGHC__
  51. #define DOS_MODE 0
  52. #define OS2_MODE 1
  53. #endif
  54.  
  55. /* String conversions */
  56. extern double atof(const char *__nptr);
  57. extern int atoi(const char *__nptr);
  58. extern long atol(const char *__nptr);
  59. extern double strtod(const char *__nptr, char **__endptr);
  60. extern long strtol(const char *__nptr, char **__endptr, int __base);
  61. extern unsigned long strtoul(const char *__nptr, char **__endptr, int __base);
  62. #ifdef __HIGHC__
  63. extern void swab(char *,char *,int );
  64.  
  65. #ifndef tolower
  66. extern int tolower(int );
  67. #endif
  68.  
  69. #ifndef toupper
  70. extern int toupper(int );
  71. #endif
  72. #endif
  73.  
  74.  
  75. /* Random number generators */
  76.  
  77. #define RAND_MAX (sizeof(int) == 2 ? 32767 : 2147483647)
  78. #define MB_CUR_MAX      1
  79.  
  80. extern int rand(void);
  81. extern void srand(unsigned int __seed);
  82.  
  83. /* Memory management (Heap) functions */
  84. extern void *calloc(unsigned int __nelem, size_t __elsize);
  85. extern void free(void *__ptr);
  86. extern void *malloc(size_t __size);
  87. extern void *realloc(void *__ptr, size_t __size);
  88.  
  89. /* Communication with the environment */
  90. extern void abort(void);
  91. extern void exit(int __status);
  92. extern int atexit(void (*__func)(void));
  93. extern void _exit(int __status);
  94. #define EXIT_FAILURE (-1)
  95. #define EXIT_SUCCESS 0
  96. extern char *getenv(const char *__name);
  97. extern int system(const char *__string);
  98. extern int _putenv(char *);
  99. extern void perror(const char *);
  100. extern void _searchenv(char *,char *,char *);
  101. extern void _splitpath(char *,char *,char *,char *,char *);
  102. extern void _makepath(char *,char *,char *,char *,char *);
  103.  
  104. #undef abs
  105. #undef labs
  106. extern int abs(int __i);
  107. extern long int labs(long int __i);
  108. #if __HIGHC__ 
  109. #define abs(i) (_abs(i))
  110. #define labs(i) (_abs(i))
  111. extern char * itoa(int, char *, int);
  112. extern char * ltoa(long ,char *, int);
  113. extern char * ultoa(unsigned long ,char *, int);
  114. extern void perror(const char *);
  115. extern int  putenv(char *);
  116. #endif
  117. extern unsigned long _lrotl(unsigned long ,int );
  118. extern unsigned long _lrotr(unsigned long ,int );
  119. extern unsigned short _srotl(unsigned short ,int );
  120. extern unsigned short _srotr(unsigned short ,int );
  121. extern unsigned int _rotl(unsigned int ,int );
  122. extern unsigned int _rotr(unsigned int ,int );
  123. extern unsigned char _crotl(unsigned char ,int );
  124. extern unsigned char _crotr(unsigned char ,int );
  125. extern void _swab(char *__from_ptr,char *__to_ptr,int __kount);
  126. extern char * _itoa(int, char *, int);
  127. extern char * _ltoa(long ,char *, int);
  128. extern char * _ultoa(unsigned long ,char *, int);
  129.  
  130. #ifndef _DIV_T_DEFINED
  131. #define _DIV_T_DEFINED
  132. typedef struct { int quot; int rem; } div_t;
  133. typedef struct { long quot; long rem; } ldiv_t;
  134. #endif
  135.  
  136. ldiv_t ldiv(long int __numerator, long int __denominator);
  137. div_t div(int __numerator, int __denominator);
  138.  
  139. extern void qsort(void *__base, size_t __nmemb, size_t __size,
  140.         int (*__compar) (const void*, const void*));
  141. extern void *bsearch(const void *__key, const void *__base,
  142.     size_t __nmemb, size_t __size,
  143.     int (*__compar) (const void *, const void *));
  144.  
  145. /* Multibyte character functions */
  146. extern  int mblen(const char *__s, size_t __n);
  147. extern  int mbtowc(wchar_t *__pwc, const char *__s, size_t __n);
  148. extern  int wctomb(char *__s, wchar_t __wchar);
  149.  
  150. /* Multibyte string functions */
  151. extern  size_t mbstowcs(wchar_t *__pwcs, const char *__s, size_t __n);
  152. extern  size_t wcstombs(char *__s, const wchar_t *__pwcs, size_t __n);
  153.  
  154. /* onexit has been removed from the standard and replaced with atexit. */
  155. /* We will eventually remove onexit, so modify your programs to use atexit. */
  156. #ifdef __HIGHC__
  157. typedef void (*(*onexit_t)(void) )(void);
  158. /* want to say: typedef onexit_t (*onexit_t) (void); */
  159. extern onexit_t onexit(onexit_t (*func)(void));
  160. #endif
  161.  
  162. #endif /* _STDLIB_H */
  163.