home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / SASC6574.LZX / include / stdlib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-04-04  |  3.8 KB  |  206 lines

  1. /* Copyright (c) 1992-1993 SAS Institute, Inc., Cary, NC USA */
  2. /* All Rights Reserved */
  3.  
  4.  
  5. #ifndef _STDLIB_H
  6. #define _STDLIB_H 1
  7.  
  8. #ifndef _COMMSIZE_H
  9. #include <sys/commsize.h>
  10. #endif
  11.  
  12. #ifndef _COMMCHAR_H
  13. #include <sys/commchar.h>
  14. #endif
  15.  
  16. #ifndef _COMMNULL_H
  17. #include <sys/commnull.h>
  18. #endif
  19.  
  20. typedef struct {
  21.             int quot;
  22.             int rem;
  23.         } div_t;
  24.  
  25. typedef struct {
  26.             long int quot;
  27.             long int rem;
  28.         } ldiv_t;
  29.  
  30. #define EXIT_SUCCESS 0
  31. #define EXIT_FAILURE 20
  32.  
  33. #ifdef _SHORTINT
  34. #define RAND_MAX   32767
  35. #else
  36. #define RAND_MAX   2147483647
  37. #endif
  38.  
  39. #define MB_CUR_MAX  __mb_cur_max
  40. extern char __mb_cur_max;
  41.  
  42. extern double atof(const char *);
  43. extern int atoi(const char *);
  44. extern long int atol(const char *);
  45.  
  46. extern double strtod(const char *, char **);
  47. extern long int strtol(const char *, char **, int);
  48. extern unsigned long int strtoul(const char *, char **, int);
  49.  
  50.  
  51. extern int rand(void);
  52. extern void srand(unsigned int);
  53.  
  54.  
  55. /***
  56. *
  57. *     ANSI memory management functions
  58. *
  59. ***/
  60.  
  61. extern void *calloc(size_t, size_t);
  62. extern void free(void *);
  63. extern void *malloc(size_t);
  64. extern void *realloc(void *, size_t);
  65.  
  66. #ifndef _STRICT_ANSI
  67. extern void *halloc(unsigned long);              /*  Extension  */
  68. extern void *__halloc(unsigned long);            /*  Extension  */
  69. #endif /* _STRICT_ANSI */
  70.  
  71.  
  72. /***
  73. *
  74. *     ANSI environment functions
  75. *
  76. ***/
  77.  
  78. extern void abort(void);
  79. extern int atexit(void (*)(void));
  80. extern void exit(int);
  81. extern char *__getenv(const char *);
  82. extern char *getenv(const char *);
  83. #define getenv __getenv
  84. extern int system(const char *);
  85.  
  86.  
  87. /***
  88. *
  89. *     ANSI searching and sorting functions
  90. *
  91. ***/
  92.  
  93. extern void *bsearch(const void *, const void *, size_t, size_t,
  94.                      int (*)(const void *, const void *));
  95. extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
  96.  
  97.  
  98. /***
  99. *
  100. *     ANSI integer arithmetic functions
  101. *
  102. ***/
  103. #ifndef __cplusplus 
  104. extern int abs(int);
  105. #endif
  106. extern div_t div(int, int);
  107. extern long int labs(long int);
  108. extern ldiv_t ldiv(long int, long int);
  109.  
  110.  
  111. /***
  112. *
  113. *     ANSI multibyte character functions
  114. *
  115. ***/
  116.  
  117. extern int mblen(const char *, size_t);
  118. extern int mbtowc(wchar_t *, const char *, size_t);
  119. extern int wctomb(char *, wchar_t);
  120. extern size_t mbstowcs(wchar_t *, const char *, size_t);
  121. extern size_t wcstombs(char *, const wchar_t *, size_t);
  122.  
  123.  
  124. #ifndef _STRICT_ANSI
  125. #ifndef __cplusplus 
  126. #ifndef abs
  127. #define abs(i)   ((i) < 0 ? -(i) : (i))
  128. #endif
  129. #endif
  130.  
  131. #ifndef labs
  132. #define labs(i)  ((i) < 0 ? -(i) : (i))
  133. #endif
  134.  
  135. /***
  136. *
  137. *     SAS Level 2 memory allocation functions
  138. *
  139. ***/
  140.  
  141. extern void *getmem(unsigned int);
  142. extern void *getml(long);
  143. extern void rlsmem(void *, unsigned int);
  144. extern void rlsml(void *, long);
  145. extern int bldmem(int);
  146. extern long sizmem(void);
  147. extern long chkml(void);
  148. extern void rstmem(void);
  149.  
  150.  
  151. /***
  152. *
  153. *     SAS Level 1 memory allocation functions
  154. *
  155. ***/
  156.  
  157. extern void *sbrk(unsigned int);
  158. extern void *lsbrk(long);
  159. extern int rbrk(void);
  160. extern void __stdargs _MemCleanup(void);
  161.  
  162. extern unsigned long _MemType;
  163. extern void *_MemHeap;
  164. extern unsigned long _MSTEP;
  165.  
  166.  
  167. /**
  168. *
  169. * SAS Sort functions
  170. *
  171. */
  172.  
  173. extern void dqsort(double *, size_t);
  174. extern void fqsort(float *, size_t);
  175. extern void lqsort(long *, size_t);
  176. extern void sqsort(short *, size_t);
  177. extern void tqsort(char **, size_t);
  178.  
  179.  
  180. /***
  181. *
  182. *     SAS startup, exit and environment functions.
  183. *
  184. ***/
  185.  
  186. extern void __exit(int);
  187. extern void __stdargs __main(char *);
  188. extern void __stdargs __tinymain(char *);
  189. extern void __stdargs _XCEXIT(long);
  190. extern char *argopt(int, char**, char *, int *, char *);
  191. extern int iabs(int);
  192. extern int onexit(void (*)(void));
  193. extern int putenv(const char *);
  194.  
  195. #define XCEXIT _XCEXIT                   /* compatibility with v5.0 */
  196. #define _main __main
  197. #define _exit __exit
  198.  
  199. #ifndef _COMMWBEN_H
  200. #include <sys/commwben.h>
  201. #endif
  202.  
  203. #endif /* _STRICT_ANSI */
  204.  
  205. #endif
  206.