home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 May / VPR9705A.ISO / VPR_DATA / PROGRAM / CBTRIAL / SETUP / DATA.Z / STDLIB.H < prev    next >
C/C++ Source or Header  |  1997-02-14  |  25KB  |  679 lines

  1. /*  stdlib.h
  2.  
  3.     Definitions for common types, variables, and functions.
  4.  
  5. */
  6.  
  7. /*
  8.  *      C/C++ Run Time Library - Version 8.0
  9.  *
  10.  *      Copyright (c) 1987, 1997 by Borland International
  11.  *      All Rights Reserved.
  12.  *
  13.  */
  14. /* $Revision:   8.15  $ */
  15.  
  16. #ifndef __STDLIB_H
  17. #define __STDLIB_H
  18.  
  19. #if !defined(___DEFS_H)
  20. #include <_defs.h>
  21. #endif
  22.  
  23. #ifndef NULL
  24. #include <_null.h>
  25. #endif
  26.  
  27.  
  28. #if !defined(RC_INVOKED)
  29.  
  30. #if defined(__STDC__)
  31. #pragma warn -nak
  32. #endif
  33.  
  34. #pragma pack(push, 1)
  35.  
  36. #endif  /* !RC_INVOKED */
  37.  
  38.  
  39. #ifndef _SIZE_T
  40. #define _SIZE_T
  41. typedef unsigned size_t;
  42. #endif
  43.  
  44. #ifndef _DIV_T
  45. #define _DIV_T
  46. typedef struct {
  47.         int     quot;
  48.         int     rem;
  49. } div_t;
  50. #endif
  51.  
  52. #ifndef _LDIV_T
  53. #define _LDIV_T
  54. typedef struct {
  55.         long    quot;
  56.         long    rem;
  57. } ldiv_t;
  58. #endif
  59.  
  60. #ifndef __cplusplus
  61. #if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED)
  62. #define _WCHAR_T
  63. #define _WCHAR_T_DEFINED  /* For WINDOWS.H */
  64. typedef unsigned short wchar_t;
  65. #endif
  66. #endif
  67.  
  68. #if !defined(_WINT_T)
  69. typedef wchar_t wint_t;
  70. #define _WINT_T
  71. #endif
  72.  
  73. #define MB_CUR_MAX 1
  74.  
  75. /* Maximum value returned by "rand" function
  76. */
  77. #define RAND_MAX 0x7FFFU
  78.  
  79. #define EXIT_SUCCESS 0
  80. #define EXIT_FAILURE 1
  81.  
  82. typedef void (_USERENTRY * atexit_t)(void);
  83.  
  84. /*
  85.   These 2 constants are defined in MS's stdlib.h.
  86. */
  87.  
  88. #define DOS_MODE    0  /* DOS 16-bit */
  89. #define OS2_MODE    1  /* OS/2 16-bit */
  90.  
  91. #if !defined(__FLAT__)
  92.  
  93.  
  94. #ifdef __cplusplus
  95. extern "C" {
  96. #endif
  97.  
  98. void        _RTLENTRY abort(void);
  99.  
  100. #if !defined(__ABS_DEFINED)
  101. #define __ABS_DEFINED
  102.  
  103. int         _RTLENTRY __abs__(int);
  104. #ifdef __cplusplus
  105. inline int _RTLENTRY  abs(int __x) { return __abs__(__x); }
  106. #else
  107. int         _RTLENTRYF abs(int __x);
  108. #  define abs(x)   __abs__(x)
  109. #endif
  110.  
  111. #endif /* __ABS_DEFINED */
  112.  
  113. int         _RTLENTRY  atexit(void (_USERENTRY *__func)(void));
  114. double      _RTLENTRY  atof(const char _FAR *__s);
  115. int         _RTLENTRYF atoi(const char _FAR *__s);
  116. long        _RTLENTRYF atol(const char _FAR *__s);
  117. void _FAR * _RTLENTRYF bsearch(const void _FAR *__key, const void _FAR *__base,
  118.                            size_t __nelem, size_t __width,
  119.                            int (_USERENTRYF *fcmp)(const void _FAR *,
  120.                            const void _FAR *));
  121. void _FAR * _RTLENTRY  calloc(size_t __nitems, size_t __size);
  122. div_t       _RTLENTRY  div(int __numer, int __denom);
  123. void        _RTLENTRY  exit(int __status);
  124. void        _RTLENTRY  free(void _FAR *__block);
  125. char _FAR * _RTLENTRYF getenv(const char _FAR *__name);
  126. long        _RTLENTRY  labs(long __x);
  127. ldiv_t      _RTLENTRY  ldiv(long __numer, long __denom);
  128. void _FAR * _RTLENTRY  malloc(size_t __size);
  129. int         _RTLENTRYF _EXPFUNC mblen(const char _FAR *__s, size_t __n);
  130. size_t      _RTLENTRYF _EXPFUNC mbstowcs(wchar_t _FAR *__pwcs, const char _FAR *__s,
  131.                                     size_t __n);
  132. int         _RTLENTRYF _EXPFUNC mbtowc(wchar_t _FAR *__pwc, const char _FAR *__s, size_t __n);
  133. void        _RTLENTRYF _EXPFUNC qsort(void _FAR *__base, size_t __nelem, size_t __width,
  134.                        int _USERENTRYF (*_EXPFUNC __fcmp)(const void _FAR *, const void _FAR *));
  135. int         _RTLENTRY  rand(void);
  136. void  _FAR *_RTLENTRY  realloc(void _FAR *__block, size_t __size);
  137. void        _RTLENTRY  srand(unsigned __seed);
  138. double      _RTLENTRY  strtod(const char _FAR *__s, char _FAR *_FAR *__endptr);
  139. long        _RTLENTRY _EXPFUNC strtol(const char _FAR *__s, char _FAR *_FAR *__endptr,
  140.                                     int __radix);
  141. long double _RTLENTRY  _strtold(const char _FAR *__s, char _FAR *_FAR *__endptr);
  142. unsigned long _RTLENTRY _EXPFUNC strtoul(const char _FAR *__s, char _FAR *_FAR *__endptr,
  143.                                        int __radix);
  144. int         _RTLENTRY _EXPFUNC system(const char _FAR *__command);
  145. size_t      _RTLENTRYF _EXPFUNC wcstombs(char _FAR *__s, const wchar_t _FAR *__pwcs,
  146.                                     size_t __n);
  147. int         _RTLENTRYF _EXPFUNC wctomb(char _FAR *__s, wchar_t __wc);
  148.  
  149. #ifdef __cplusplus
  150. }
  151. #endif
  152.  
  153. extern  unsigned        _RTLENTRY _psp;
  154.  
  155. #if !defined(__STDC__) /* obsolete */
  156. #define environ  _environ
  157. #endif
  158.  
  159. extern  char          **_RTLENTRY _environ;
  160. extern  int             _RTLENTRY _fmode;
  161. extern  unsigned char   _RTLENTRY _osmajor;
  162. extern  unsigned char   _RTLENTRY _osminor;
  163. extern  unsigned int    _RTLENTRY _version;
  164.  
  165. #if !defined(__STDC__)
  166. #define sys_nerr     _sys_nerr
  167. #define sys_errlist  _sys_errlist
  168. #endif
  169.  
  170. #if defined( _RTLDLL )
  171.  
  172. #ifdef __cplusplus
  173. extern "C" {
  174. #endif
  175. extern  char far * far * far  _RTLENTRY __get_sys_errlist(void);
  176. extern  int  far              _RTLENTRY __get_sys_nerr(void);
  177. #ifdef __cplusplus
  178. }
  179. #endif
  180.  
  181. #define _sys_errlist  __get_sys_errlist()
  182. #define _sys_nerr     __get_sys_nerr()
  183.  
  184. #else
  185. extern  char      _FAR *_RTLENTRY _sys_errlist[];
  186. extern  int             _RTLENTRY _sys_nerr;
  187. #endif
  188.  
  189.  
  190. #if !defined(__STDC__) && !defined(__CODEGUARD__)
  191. #if defined(__cplusplus)
  192. inline int  _RTLENTRY atoi(const char _FAR *__s) { return (int) atol(__s); }
  193. #else
  194. #define atoi(s)     ((int) atol(s))
  195. #endif
  196. #endif
  197.  
  198. /* Constants for MSC pathname functions */
  199.  
  200. #define _MAX_PATH       80
  201. #define _MAX_DRIVE      3
  202. #define _MAX_DIR        66
  203. #define _MAX_FNAME      9
  204. #define _MAX_EXT        5
  205.  
  206. #ifdef __cplusplus
  207. extern "C" {
  208. #endif
  209.  
  210. long double    _RTLENTRY   _atold(const char _FAR *__s);
  211. unsigned char  _RTLENTRY   _crotl(unsigned char __value, int __count);
  212. unsigned char  _RTLENTRY   _crotr(unsigned char __value, int __count);
  213. char   _FAR   *_RTLENTRY   ecvt(double __value, int __ndig, int _FAR *__dec,
  214.                            int _FAR *__sign);
  215. void           _RTLENTRY   _exit(int __status);
  216. char   _FAR   *_RTLENTRY   fcvt(double __value, int __ndig, int _FAR *__dec,
  217.                            int _FAR *__sign);
  218. char _FAR     *_RTLENTRYF  _EXPFUNC _fullpath( char _FAR *__buf,
  219.                                  const char _FAR *__path,
  220.                                  size_t __maxlen );
  221. char   _FAR   *_RTLENTRY   gcvt(double __value, int __ndec, char _FAR *__buf);
  222. char   _FAR   *_RTLENTRYF  _EXPFUNC itoa(int __value, char _FAR *__string, int __radix);
  223. void   _FAR   *_RTLENTRY   _EXPFUNC lfind(const void _FAR *__key, const void _FAR *__base,
  224.                                  size_t _FAR *__num, size_t __width,
  225.                                  int _USERENTRY (*_EXPFUNC __fcmp)(const void _FAR *,
  226.                                  const void _FAR *));
  227. unsigned long  _RTLENTRY   _lrotl(unsigned long __val, int __count);
  228. unsigned long  _RTLENTRY   _lrotr(unsigned long __val, int __count);
  229.  
  230. void   _FAR   *_RTLENTRY   _EXPFUNC lsearch(const void _FAR *__key, void _FAR *__base,
  231.                                  size_t _FAR *__num, size_t __width,
  232.                            int _RTLENTRY(*_EXPFUNC __fcmp)(const void _FAR *, const void _FAR *));
  233. char _FAR     *_RTLENTRYF  _EXPFUNC ltoa(long __value, char _FAR *__string, int __radix);
  234. void           _RTLENTRY   _EXPFUNC _makepath( char _FAR *__path,
  235.                                  const char _FAR *__drive,
  236.                                  const char _FAR *__dir,
  237.                                  const char _FAR *__name,
  238.                                  const char _FAR *__ext );
  239. int            _RTLENTRY   _EXPFUNC putenv(const char _FAR *__name);
  240.  
  241. unsigned       _RTLENTRY   _rotl(unsigned __value, int __count);
  242. unsigned       _RTLENTRY   _rotr(unsigned __value, int __count);
  243.  
  244. unsigned       _RTLENTRY   __rotl__(unsigned __value, int __count);     /* intrinsic */
  245. unsigned       _RTLENTRY   __rotr__(unsigned __value, int __count);     /* intrinsic */
  246.  
  247. void           _RTLENTRY   _searchenv(const char _FAR *__file,
  248.                                  const char _FAR *__varname,
  249.                                  char _FAR *__pathname);
  250. void           _RTLENTRY   _searchstr(const char _FAR *__file,
  251.                                  const char _FAR *__ipath,
  252.                                  char _FAR *__pathname);
  253. void           _RTLENTRY   _EXPFUNC _splitpath( const char _FAR *__path,
  254.                                  char _FAR *__drive,
  255.                                  char _FAR *__dir,
  256.                                  char _FAR *__name,
  257.                                  char _FAR *__ext );
  258. void           _RTLENTRY   _EXPFUNC swab(char _FAR *__from, char _FAR *__to, int __nbytes);
  259. char _FAR     *_RTLENTRYF  _EXPFUNC ultoa(unsigned long __value, char _FAR *__string,
  260.                                  int __radix);
  261.  
  262. #ifdef __cplusplus
  263. }
  264. #endif
  265.  
  266. #ifdef __BCOPT__
  267. #define  _rotl(__value, __count)  __rotl__(__value, __count)
  268. #define  _rotr(__value, __count)  __rotr__(__value, __count)
  269. #endif
  270.  
  271.  
  272. #if !defined(__STDC__)  /* NON-ANSI */
  273.  
  274. #if defined( _RTLDLL )
  275.  
  276. #ifdef __cplusplus
  277. extern "C" {
  278. #endif
  279. int far * far _RTLENTRY __getErrno(void);
  280. int far * far _RTLENTRY __getDOSErrno(void);
  281. #ifdef __cplusplus
  282. }
  283. #endif
  284.  
  285.  
  286. #define errno (*__getErrno())
  287. #define _doserrno (*__getDOSErrno())
  288.  
  289. #else
  290.  
  291. extern  int   _RTLENTRY _doserrno;
  292. extern  int   _RTLENTRY errno;
  293.  
  294. #endif
  295.  
  296. #endif  /* !__STDC__ */
  297.  
  298. #ifdef __cplusplus
  299. inline int _RTLENTRY     random(int __num)
  300.                         { return(int)(((long)rand()*__num)/(RAND_MAX+1)); }
  301. #else /* __cplusplus */
  302. #define random(num)(int)(((long)rand()*(num))/(RAND_MAX+1))
  303. #endif
  304.  
  305.  
  306. #else  /* defined __FLAT__ */
  307.  
  308.  
  309. #ifdef __cplusplus
  310. extern "C" {
  311. #endif
  312.  
  313. void        _RTLENTRY _EXPFUNC abort(void);
  314.  
  315. #if !defined(__ABS_DEFINED)
  316. #define __ABS_DEFINED
  317.  
  318. int         _RTLENTRY __abs__(int);
  319. #ifdef __cplusplus
  320. inline int _RTLENTRY  abs(int __x) { return __abs__(__x); }
  321. #else
  322. int         _RTLENTRYF _EXPFUNC abs(int __x);
  323. #  define abs(x)   __abs__(x)
  324. #endif
  325.  
  326. #endif /* __ABS_DEFINED */
  327.  
  328. int         _RTLENTRY   _EXPFUNC atexit(void (_USERENTRY * __func)(void));
  329. double      _RTLENTRY   _EXPFUNC atof(const char * __s);
  330. int         _RTLENTRYF  _EXPFUNC atoi(const char * __s);
  331. long        _RTLENTRYF  _EXPFUNC atol(const char * __s);
  332. void *      _RTLENTRYF  _EXPFUNC bsearch(const void * __key, const void * __base,
  333.                            size_t __nelem, size_t __width,
  334.                            int (_USERENTRY *fcmp)(const void *,
  335.                            const void *));
  336. void *      _RTLENTRY _EXPFUNC   calloc(size_t __nitems, size_t __size);
  337. div_t       _RTLENTRY _EXPFUNC   div(int __numer, int __denom);
  338. void        _RTLENTRY _EXPFUNC   exit(int __status);
  339. void        _RTLENTRY _EXPFUNC   free(void * __block);
  340. char *      _RTLENTRYF _EXPFUNC  getenv(const char * __name);
  341. long        _RTLENTRY _EXPFUNC   labs(long __x);
  342. ldiv_t      _RTLENTRY _EXPFUNC   ldiv(long __numer, long __denom);
  343. void *      _RTLENTRY _EXPFUNC   malloc(size_t __size);
  344. int         _RTLENTRY _EXPFUNC   mblen(const char * __s, size_t __n);
  345. size_t      _RTLENTRY _EXPFUNC   mbstowcs(wchar_t *__pwcs, const char * __s,
  346.                            size_t __n);
  347. int         _RTLENTRY _EXPFUNC   mbtowc(wchar_t *__pwc, const char * __s, size_t __n);
  348. void        _RTLENTRYF _EXPFUNC  qsort(void * __base, size_t __nelem, size_t __width,
  349.                            int (_USERENTRY *__fcmp)(const void *, const void *));
  350. int         _RTLENTRY _EXPFUNC   rand(void);
  351. void *      _RTLENTRY _EXPFUNC   realloc(void * __block, size_t __size);
  352. void        _RTLENTRY _EXPFUNC   srand(unsigned __seed);
  353. double      _RTLENTRY _EXPFUNC   strtod(const char * __s, char * *__endptr);
  354. long        _RTLENTRY _EXPFUNC   strtol(const char * __s, char * *__endptr,
  355.                            int __radix);
  356. long double _RTLENTRY _EXPFUNC   _strtold(const char * __s, char * *__endptr);
  357. unsigned long _RTLENTRY _EXPFUNC strtoul(const char * __s, char * *__endptr,
  358.                            int __radix);
  359. int         _RTLENTRY _EXPFUNC   system(const char * __command);
  360.  
  361. size_t      _RTLENTRY _EXPFUNC   wcstombs(char * __s, const wchar_t *__pwcs,size_t __n);
  362. int         _RTLENTRY _EXPFUNC   wctomb(char * __s, wchar_t __wc);
  363. double      _RTLENTRY _EXPFUNC   _wtof(const wchar_t * __s);
  364. int         _RTLENTRY _EXPFUNC   _wtoi(const wchar_t * __s);
  365. long        _RTLENTRY _EXPFUNC   _wtol(const wchar_t * __s);
  366. long double _RTLENTRY _EXPFUNC   _wtold(const wchar_t * __s);
  367. double      _RTLENTRY _EXPFUNC   wcstod(const wchar_t * __s, wchar_t * *__endptr);
  368. long        _RTLENTRY _EXPFUNC   wcstol(const wchar_t * __s, wchar_t * *__endptr, int __radix);
  369. long double _RTLENTRY _EXPFUNC   _wcstold(const wchar_t * __s, wchar_t * *__endptr);
  370. unsigned long _RTLENTRY _EXPFUNC wcstoul(const wchar_t * __s, wchar_t * *__endptr, int __radix);
  371. int         _RTLENTRY  _EXPFUNC  _wsystem(const wchar_t * __command);
  372. wchar_t *   _RTLENTRY  _EXPFUNC  _itow(int __value, wchar_t *__string, int __radix);
  373. wchar_t *   _RTLENTRY  _EXPFUNC  _ltow(long __value, wchar_t *__string, int __radix);
  374. wchar_t *   _RTLENTRY  _EXPFUNC  _ultow(unsigned long __value, wchar_t *__string, int __radix);
  375.  
  376. #if !defined(__STDC__)
  377. #if __BORLANDC__ >= 0x0520
  378. __int64     _RTLENTRY   _EXPFUNC _atoi64(const char * __s);
  379. char *      _RTLENTRY   _EXPFUNC _i64toa(__int64 value, char *strP, int radix);
  380. char *      _RTLENTRY   _EXPFUNC _ui64toa(unsigned __int64 value, char *strP, int radix);
  381. __int64     _RTLENTRY   _EXPFUNC _wtoi64(const wchar_t * __s);
  382. wchar_t *   _RTLENTRY   _EXPFUNC _i64tow(__int64 value, wchar_t *strP, int radix);
  383. wchar_t *   _RTLENTRY   _EXPFUNC _ui64tow(unsigned __int64 value, wchar_t *strP, int radix);
  384. #endif
  385. char *      _RTLENTRY   _EXPFUNC ltoa(long __value, char * __string, int __radix);
  386. char *      _RTLENTRY   _EXPFUNC ltoa(long __value, char * __string, int __radix);
  387. char *      _RTLENTRY   _EXPFUNC ecvt(double __value, int __ndig, int * __dec, int * __sign);
  388. char *      _RTLENTRY   _EXPFUNC fcvt(double __value, int __ndig, int * __dec, int * __sign);
  389. char *      _RTLENTRY   _EXPFUNC gcvt(double __value, int __ndec, char * __buf);
  390.  
  391. #endif /* __STDC__ */
  392.  
  393. #ifdef __cplusplus
  394. }
  395. #endif
  396.  
  397. /* Variables */
  398.  
  399. #ifdef _MT
  400.  
  401. #ifdef __cplusplus
  402. extern "C" {
  403. #endif
  404. extern  int * _RTLENTRY _EXPFUNC __errno(void);
  405. extern  int * _RTLENTRY _EXPFUNC __doserrno(void);
  406. #ifdef  __cplusplus
  407. }
  408. #endif
  409. #define errno (*__errno())
  410. #define _doserrno (*__doserrno())
  411.  
  412. #else   /* MT */
  413.  
  414. extern  int   _RTLENTRY _EXPDATA errno;
  415. extern  int   _RTLENTRY _EXPDATA _doserrno;
  416.  
  417. #endif  /* MT */
  418.  
  419. #if !defined(__STDC__)
  420.  
  421. /* Values for _osmode */
  422.  
  423. #define _WIN_MODE    2  /* Windows 16- or 32-bit */
  424. #define _OS2_20_MODE 3  /* OS/2 32-bit */
  425. #define _DOSX32_MODE 4  /* DOS 32-bit */
  426.  
  427. #define environ  _environ
  428.  
  429. #endif /* __STDC__ */
  430.  
  431. extern  char          **_RTLENTRY _EXPDATA _environ;
  432. extern  wchar_t       **_RTLENTRY _EXPDATA _wenviron;
  433. extern  int             _RTLENTRY _EXPDATA _fileinfo;
  434. extern  int             _RTLENTRY          _fmode;
  435. extern  unsigned char   _RTLENTRY _EXPDATA _osmajor;
  436. extern  unsigned char   _RTLENTRY _EXPDATA _osminor;
  437. extern  unsigned char   _RTLENTRY _EXPDATA _osmode;
  438. extern  unsigned int    _RTLENTRY _EXPDATA _osversion;
  439.  
  440. #if !defined(__STDC__) && !defined(__CODEGUARD__)
  441. #ifdef __cplusplus
  442.    inline int _RTLENTRY atoi(const char *__s) { return (int)atol(__s); }
  443. #else
  444. #  define atoi(s)((int) atol(s))
  445. #endif
  446. #endif
  447.  
  448. #if !defined(__STDC__)
  449. #define sys_nerr     _sys_nerr
  450. #define sys_errlist  _sys_errlist
  451. #endif
  452.  
  453. extern  char          * _RTLENTRY _EXPDATA _sys_errlist[];
  454. extern  int             _RTLENTRY _EXPDATA _sys_nerr;
  455.  
  456.  
  457. /* Constants for MSC pathname functions */
  458.  
  459. #if defined(__OS2__) || defined(__WIN32__)
  460. #define _MAX_PATH       260
  461. #define _MAX_DRIVE      3
  462. #define _MAX_DIR        256
  463. #define _MAX_FNAME      256
  464. #define _MAX_EXT        256
  465. #else
  466. #define _MAX_PATH       80
  467. #define _MAX_DRIVE      3
  468. #define _MAX_DIR        66
  469. #define _MAX_FNAME      9
  470. #define _MAX_EXT        5
  471. #endif
  472.  
  473. #ifdef __cplusplus
  474. extern "C" {
  475. #endif
  476.  
  477. long double   _RTLENTRY  _EXPFUNC _atold(const char * __s);
  478.  
  479. unsigned char _RTLENTRY  _EXPFUNC _crotl(unsigned char __value, int __count);
  480. unsigned char _RTLENTRY  _EXPFUNC _crotr(unsigned char __value, int __count);
  481.  
  482. char *        _RTLENTRY  _EXPFUNC _ecvt(double __value, int __ndig, int * __dec,
  483.                                        int * __sign);
  484. void          _RTLENTRY  _EXPFUNC _exit(int __status);
  485. char *        _RTLENTRY  _EXPFUNC _fcvt(double __value, int __ndig, int * __dec,
  486.                                        int * __sign);
  487. char *        _RTLENTRYF _EXPFUNC _fullpath(char * __buf, const char * __path,
  488.                                             size_t __maxlen);
  489. char *        _RTLENTRY  _EXPFUNC _gcvt(double __value, int __ndec,
  490.                                        char * __buf);
  491. char *        _RTLENTRYF _EXPFUNC itoa(int __value, char * __string,
  492.                                        int __radix);
  493. void *        _RTLENTRY  _EXPFUNC lfind(const void * __key,
  494.                                         const void * __base,
  495.                                         size_t *__num, size_t __width,
  496.                                         int (_USERENTRY *fcmp)(const void *, const void *));
  497.  
  498. long          _RTLENTRY  _EXPFUNC _lrand(void);
  499. unsigned long _RTLENTRY  _EXPFUNC _lrotl(unsigned long __val, int __count);
  500. unsigned long _RTLENTRY  _EXPFUNC _lrotr(unsigned long __val, int __count);
  501.  
  502. void *        _RTLENTRY  _EXPFUNC lsearch(const void * __key, void * __base,
  503.                                           size_t *__num, size_t __width,
  504.                                           int (_USERENTRY *fcmp)(const void *, const void *));
  505.  
  506. char *        _RTLENTRYF _EXPFUNC _ltoa(long __value, char * __string,
  507.                                        int __radix);
  508. void          _RTLENTRY  _EXPFUNC _makepath(char * __path,
  509.                                             const char * __drive,
  510.                                             const char * __dir,
  511.                                             const char * __name,
  512.                                             const char * __ext );
  513. int           _RTLENTRY  _EXPFUNC putenv(const char * __name);
  514.  
  515. unsigned short  _RTLENTRY _EXPFUNC _rotl(unsigned short __value, int __count);
  516. unsigned short  _RTLENTRY _EXPFUNC _rotr(unsigned short __value, int __count);
  517.  
  518. void            _RTLENTRY _EXPFUNC _searchenv(const char * __file,
  519.                                              const char * __varname,
  520.                                              char *__pathname);
  521. void            _RTLENTRY _EXPFUNC _searchstr(const char * __file,
  522.                                              const char * __ipath,
  523.                                              char *__pathname);
  524. void            _RTLENTRY _EXPFUNC _splitpath(const char * __path,
  525.                                              char * __drive,
  526.                                              char * __dir,
  527.                                              char * __name,
  528.                                              char * __ext );
  529. void            _RTLENTRY _EXPFUNC swab(char * __from, char * __to, int __nbytes);
  530. char *          _RTLENTRY _EXPFUNC ultoa(unsigned long __value, char * __string,
  531.                                         int __radix);
  532. void            _RTLENTRY _EXPFUNC perror(const char * __s);
  533.  
  534. void            _RTLENTRY _EXPFUNC _wperror(const wchar_t * __s);
  535. wchar_t *       _RTLENTRY _EXPFUNC _wfullpath(wchar_t * __buf,const wchar_t * __path,
  536.                                              size_t __maxlen);
  537. void            _RTLENTRY _EXPFUNC _wmakepath(wchar_t * __path,
  538.                                              const wchar_t * __drive,
  539.                                              const wchar_t * __dir,
  540.                                              const wchar_t * __name,
  541.                                              const wchar_t * __ext );
  542. void          _RTLENTRY  _EXPFUNC _wsplitpath(const wchar_t * __path,
  543.                                               wchar_t * __drive,
  544.                                               wchar_t * __dir,
  545.                                               wchar_t * __name,
  546.                                               wchar_t * __ext );
  547.  
  548. void          _RTLENTRY  _EXPFUNC _wsearchenv(const wchar_t * __file,
  549.                                              const wchar_t * __varname,
  550.                                              wchar_t *__pathname);
  551. void          _RTLENTRY  _EXPFUNC _wsearchstr(const wchar_t * __file,
  552.                                              const wchar_t * __ipath,
  553.                                              wchar_t *__pathname);
  554. wchar_t *     _RTLENTRY _EXPFUNC  _wgetenv(const wchar_t * __name);
  555. int           _RTLENTRY _EXPFUNC  _wputenv(const wchar_t * __name);
  556. /* Intrinsic functions */
  557.  
  558. unsigned char _RTLENTRY  ___crotl__(unsigned char __value, int __count);
  559. unsigned char _RTLENTRY  ___crotr__(unsigned char __value, int __count);
  560. unsigned long _RTLENTRY  ___lrotl__(unsigned long __val, int __count);
  561. unsigned long _RTLENTRY  ___lrotr__(unsigned long __val, int __count);
  562. unsigned short _RTLENTRY ___rotl__ (unsigned short __value, int __count);
  563. unsigned short _RTLENTRY ___rotr__ (unsigned short __value, int __count);
  564.  
  565. #ifdef __cplusplus
  566. }
  567. #endif
  568.  
  569. #if !defined(__STDC__)
  570.  
  571. #if defined(__cplusplus)
  572. inline int  _RTLENTRY random(int __num)
  573.                        { return __num ? (int)(_lrand()%(__num)) : 0; }
  574. #else /* __cplusplus */
  575. #define random(num) (num ? (int)(_lrand()%(num)) : 0)
  576. #endif  /* __cplusplus  */
  577.  
  578. #endif /* __STDC__ */
  579.  
  580. #endif  /* __FLAT__ */
  581.  
  582. #if defined(__cplusplus)
  583. extern "C" long _RTLENTRY _EXPFUNC time(long _FAR *);
  584. #endif
  585.  
  586. #if !defined(__STDC__)
  587.  
  588. #if defined(__cplusplus)
  589.  
  590. /* Need prototype of time() for C++ randomize() */
  591. inline void _RTLENTRY randomize(void) { srand((unsigned) time(NULL)); }
  592.  
  593. #if defined(__MFC_COMPAT__)
  594. #if !defined( __MINMAX_DEFINED)
  595. #define __MINMAX_DEFINED
  596. #define max(a,b)    (((a) > (b)) ? (a) : (b))
  597. #define min(a,b)    (((a) < (b)) ? (a) : (b))
  598. #define __max       max
  599. #define __min       min
  600. #endif /*__MINMAX_DEFINED */
  601.  
  602. inline char * _RTLENTRY  _ecvt(double __value, int __ndig, int * __dec,
  603.                          int * __sign)
  604.                          { return ecvt (__value, __ndig, __dec, __sign); }
  605. inline char * _RTLENTRY  _fcvt(double __value, int __ndig, int * __dec,
  606.                          int * __sign)
  607.                          { return fcvt (__value, __ndig, __dec, __sign); }
  608. inline char * _RTLENTRY  _gcvt(double __value, int __ndec,
  609.                          char * __buf)
  610.                          { return gcvt(__value, __ndec, __buf); }
  611. inline char * _RTLENTRYF _itoa(int __value, char * __string,
  612.                          int __radix)
  613.                          { return itoa(__value, __string, __radix); }
  614. inline char * _RTLENTRYF _ltoa(long __value, char * __string,
  615.                          int __radix)
  616.                          { return ltoa(__value, __string, __radix); }
  617. inline char * _RTLENTRYF _ultoa(unsigned long __value, char * __string,
  618.                          int __radix)
  619.                          { return ultoa(__value, __string, __radix); }
  620. inline int    _RTLENTRY  _putenv(const char * __name) {return putenv(__name);}
  621. inline void   _RTLENTRY  _swab(char * __from, char * __to, int __nbytes)
  622.                          { swab (__from, __to, __nbytes); }
  623. #if !defined(__DLL__)
  624. extern  int           _RTLENTRY __argc;
  625. extern  char        **_RTLENTRY __argv;
  626. #endif  /* __DLL__ */
  627. #else   /* __MFC_COMPAT__ */
  628. #if !defined( __MINMAX_DEFINED) && defined(__cplusplus)
  629. #define __MINMAX_DEFINED
  630. template <class T> inline const T _FAR &min( const T _FAR &t1, const T _FAR &t2 )
  631. {
  632.     if  (t1 < t2)
  633.         return t1;
  634.     else
  635.         return t2;
  636. }
  637.  
  638. template <class T> inline const T _FAR &max( const T _FAR &t1, const T _FAR &t2 )
  639. {
  640.     if  (t1 > t2)
  641.         return t1;
  642.     else
  643.         return t2;
  644. }
  645. #endif
  646. #endif /* __MFC_COMPAT__ */
  647.  
  648. #else /* __cplusplus */
  649.  
  650. #define randomize() srand((unsigned)time(NULL))
  651. #define max(a,b)    (((a) > (b)) ? (a) : (b))
  652. #define min(a,b)    (((a) < (b)) ? (a) : (b))
  653. #endif /* __cplusplus */
  654.  
  655.  
  656. #define  MB_CUR_MAX              1
  657.  
  658. #endif /* __STDC__ */
  659.  
  660. #if defined(__MSC) && !defined(__MFC_COMPAT__)
  661. #define _itoa(__value, __string, __radix) itoa(__value, __string, __radix)
  662. #endif
  663.  
  664.  
  665. #if !defined(RC_INVOKED)
  666.  
  667. /* restore default packing */
  668. #pragma pack(pop)
  669.  
  670. #if defined(__STDC__)
  671. #pragma warn .nak
  672. #endif
  673.  
  674. #endif  /* !RC_INVOKED */
  675.  
  676.  
  677. #endif  /* __STDLIB_H */
  678.  
  679.