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