|
|
1.1 root 1: /***
2: *stdlib.h - declarations/definitions for commonly used library functions
3: *
4: * Copyright (c) 1985-1987, Microsoft Corporation. All rights reserved.
5: *
6: *Purpose:
7: * This include file contains the function declarations for
8: * commonly used library functions which either don't fit somewhere
9: * else, or, like toupper/tolower, can't be declared in the normal
10: * place (ctype.h in the case of toupper/tolower) for other reasons.
11: * [ANSI]
12: *
13: *******************************************************************************/
14:
15:
16: #ifndef _SIZE_T_DEFINED
17: typedef unsigned int size_t;
18: #define _SIZE_T_DEFINED
19: #endif
20:
21: #ifndef NO_EXT_KEYS /* extensions enabled */
22: #define _CDECL cdecl
23: #define _NEAR near
24: #else /* extensions not enabled */
25: #define _CDECL
26: #define _NEAR
27: #endif /* NO_EXT_KEYS */
28:
29:
30: /* definition of the return type for the onexit() function */
31:
32: #ifndef _ONEXIT_T_DEFINED
33: typedef int (_CDECL * _CDECL onexit_t)();
34: #define _ONEXIT_T_DEFINED
35: #endif
36:
37:
38: /* Data structure definitions for div and ldiv runtimes. */
39:
40: #ifndef _DIV_T_DEFINED
41:
42: typedef struct {
43: int quot;
44: int rem;
45: } div_t;
46:
47: typedef struct {
48: long quot;
49: long rem;
50: } ldiv_t;
51:
52: #define _DIV_T_DEFINED
53: #endif
54:
55: /* Maximum value that can be returned by the rand function. */
56:
57: #define RAND_MAX 0x7fff
58:
59:
60: /* min and max macros */
61:
62: #define max(a,b) (((a) > (b)) ? (a) : (b))
63: #define min(a,b) (((a) < (b)) ? (a) : (b))
64:
65:
66: /* sizes for buffers used by the _makepath() and _splitpath() functions.
67: * note that the sizes include space for 0-terminator
68: */
69:
70: #define _MAX_PATH 80 /* max. length of full pathname */
71: #define _MAX_DRIVE 3 /* max. length of drive component */
72: #define _MAX_DIR 66 /* max. length of path component */
73: #define _MAX_FNAME 9 /* max. length of file name component */
74: #define _MAX_EXT 5 /* max. length of extension component */
75:
76: /* external variable declarations */
77:
78: extern int _NEAR _CDECL errno; /* XENIX style error number */
79: extern int _NEAR _CDECL _doserrno; /* MS-DOS system error value */
80: extern char * _NEAR _CDECL sys_errlist[]; /* perror error message table */
81: extern int _NEAR _CDECL sys_nerr; /* # of entries in sys_errlist table */
82:
83: extern char ** _NEAR _CDECL environ; /* pointer to environment table */
84:
85: extern unsigned int _NEAR _CDECL _psp; /* Program Segment Prefix */
86:
87: extern int _NEAR _CDECL _fmode; /* default file translation mode */
88:
89: /* DOS major/minor version numbers */
90:
91: extern unsigned char _NEAR _CDECL _osmajor;
92: extern unsigned char _NEAR _CDECL _osminor;
93:
94: #define DOS_MODE 0 /* Real Address Mode */
95: #define OS2_MODE 1 /* Protected Address Mode */
96:
97: extern unsigned char _NEAR _CDECL _osmode;
98:
99:
100: /* function prototypes */
101:
102: void _CDECL abort(void);
103: int _CDECL abs(int);
104: int _CDECL atexit(void (_CDECL *)(void));
105: double _CDECL atof(const char *);
106: int _CDECL atoi(const char *);
107: long _CDECL atol(const char *);
108: void * _CDECL bsearch(const void *, const void *, size_t, size_t, int (_CDECL *)(const void *, const void *));
109: void * _CDECL calloc(size_t, size_t);
110: div_t _CDECL div(int, int);
111: char * _CDECL ecvt(double, int, int *, int *);
112: void _CDECL exit(int);
113: void _CDECL _exit(int);
114: char * _CDECL fcvt(double, int, int *, int *);
115: void _CDECL free(void *);
116: char * _CDECL gcvt(double, int, char *);
117: char * _CDECL getenv(const char *);
118: char * _CDECL itoa(int, char *, int);
119: long _CDECL labs(long);
120: ldiv_t _CDECL ldiv(long, long);
121: unsigned long _CDECL _lrotl(unsigned long, int);
122: unsigned long _CDECL _lrotr(unsigned long, int);
123: char * _CDECL ltoa(long, char *, int);
124: void _CDECL _makepath(char *, char *, char *, char *, char *);
125: void * _CDECL malloc(size_t);
126: onexit_t _CDECL onexit(onexit_t);
127: void _CDECL perror(const char *);
128: int _CDECL putenv(char *);
129: void _CDECL qsort(void *, size_t, size_t, int (_CDECL *)(const void *, const void *));
130: unsigned int _CDECL _rotl(unsigned int, int);
131: unsigned int _CDECL _rotr(unsigned int, int);
132: int _CDECL rand(void);
133: void * _CDECL realloc(void *, size_t);
134: void _CDECL _searchenv(char *, char *, char *);
135: void _CDECL _splitpath(char *, char *, char *, char *, char *);
136: void _CDECL srand(unsigned int);
137: double _CDECL strtod(const char *, char **);
138: long _CDECL strtol(const char *, char **, int);
139: unsigned long _CDECL strtoul(const char *, char **, int);
140: void _CDECL swab(char *, char *, int);
141: int _CDECL system(const char *);
142: char * _CDECL ultoa(unsigned long, char *, int);
143:
144: #ifndef tolower /* tolower has been undefined - use function */
145: int _CDECL tolower(int);
146: #endif /* tolower */
147:
148: #ifndef toupper /* toupper has been undefined - use function */
149: int _CDECL toupper(int);
150: #endif /* toupper */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.