home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / qc25 / include / stdlib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-25  |  6.6 KB  |  207 lines

  1. /***
  2. *stdlib.h -Deklarationen/Definitionen für oft verwendete
  3. *            Bibliotheksfunktionen
  4. *
  5. *    Copyright (c) 1985-1990, Microsoft Corporation.  Alle Rechte vorbehalten.
  6. *
  7. * Zweck:
  8. *    Diese Datei enthält die Funktionsdeklarationen für oft verwendete
  9. *    Bibliotheksfunktionen, die weder in andere .H-Dateien passen bzw.,
  10. *    wie toupper/tolower aus anderen Gründen nicht an der normalen Stelle
  11. *    deklariert werden können (im Falle von toupper/tolower wäre es ctype.h).
  12. *    [ANSI]
  13. *
  14. ***/
  15.  
  16. #if defined(_DLL) && !defined(_MT)
  17. #error _DLL kann ohne _MT nicht definiert werden
  18. #endif
  19.  
  20. #ifdef _MT
  21. #define _FAR_ _far
  22. #else
  23. #define _FAR_
  24. #endif
  25.  
  26. #ifdef    _DLL
  27. #define _LOADDS_ _loadds
  28. #else
  29. #define _LOADDS_
  30. #endif
  31.  
  32. #ifndef _SIZE_T_DEFINED
  33. typedef unsigned int size_t;
  34. #define _SIZE_T_DEFINED
  35. #endif
  36.  
  37. /* Definition des NUll-Zeiger Wertes */
  38.  
  39. #ifndef NULL
  40. #if (_MSC_VER >= 600)
  41. #define NULL    ((void *)0)
  42. #elif (defined(M_I86SM) || defined(M_I86MM))
  43. #define NULL    0
  44. #else
  45. #define NULL    0L
  46. #endif
  47. #endif
  48.  
  49. /* Definition des Rückgabetyps für die Funktion onexit() */
  50.  
  51. #define EXIT_SUCCESS    0
  52. #define EXIT_FAILURE    1
  53.  
  54. #ifndef _ONEXIT_T_DEFINED
  55. typedef int (_FAR_ _cdecl _LOADDS_ * _cdecl onexit_t)();
  56. #define _ONEXIT_T_DEFINED
  57. #endif
  58.  
  59.  
  60. /* Datenstruktur-Definitionen für Laufzeitroutinen div und ldiv */
  61.  
  62. #ifndef _DIV_T_DEFINED
  63.  
  64. typedef struct _div_t {
  65.     int quot;
  66.     int rem;
  67. } div_t;
  68.  
  69. typedef struct _ldiv_t {
  70.     long quot;
  71.     long rem;
  72. } ldiv_t;
  73.  
  74. #define _DIV_T_DEFINED
  75. #endif
  76.  
  77. /* Höchstwert, der sich aus der Funktion rand (Zufallszahlen) ergeben kann */
  78.  
  79. #define RAND_MAX 0x7fff
  80.  
  81.  
  82. /* Makros für min und max */
  83.  
  84. #define max(a,b)    (((a) > (b)) ? (a) : (b))
  85. #define min(a,b)    (((a) < (b)) ? (a) : (b))
  86.  
  87.  
  88. /* Größen der Zwischenspeicher für die Funktionen _makepath() und _splitpath().
  89.  * Beachten Sie, daß das abschließende Nullzeichen mit berücksichtigt wird.
  90.  */
  91.  
  92. #define _MAX_PATH    260    /* Höchstlänge für vollst. Pfadnamen */
  93. #define _MAX_DRIVE    3    /* Höchstlänge für Laufwerksteil */
  94. #define _MAX_DIR    256    /* Höchstlänge für Pfadbezeichnung */
  95. #define _MAX_FNAME    256    /* Höchstlänge für Dateinamen */
  96. #define _MAX_EXT    256    /* Höchstlänge für Dateiname-Erweiterung */
  97.  
  98. /* externe Variablendeklarationen */
  99.  
  100. #ifdef    _MT
  101. extern int _far * _cdecl _far volatile _errno(void);
  102. extern unsigned _far * _cdecl _far __doserrno(void);
  103. #define errno        (*_errno())
  104. #define _doserrno   (*__doserrno())
  105. #else
  106. extern int _near _cdecl volatile errno;     /* XENIX-artige Fehlernumner */
  107. extern int _near _cdecl _doserrno;        /* MS-DOS-Systemfehlerwert */
  108. #endif
  109. extern char * _near _cdecl sys_errlist[];    /* perror Fehlermeldungstabelle */
  110. extern int _near _cdecl sys_nerr;        /* Anzahl der Eintragungen in    */
  111.                             /* Tabelle sys_errlist           */
  112.  
  113. #ifdef _DLL
  114. extern char ** _FAR_ _cdecl environ;        /* Zeiger zu Umgebungstabelle */
  115. extern int _FAR_ _cdecl _fmode;         /* Standard-Datei Übersetzungsmodus */
  116. extern int _FAR_ _cdecl _fileinfo;        /* öffne Dateiinformationsmodus (für spawn) */
  117. #else
  118. extern char ** _near _cdecl environ;        /* Zeiger zu Umgebungstabelle */
  119. extern int _near _cdecl _fmode;         /* Standard-Datei Übersetzungsmodus */
  120. extern int _near _cdecl _fileinfo;        /* öffne Dateiinformationsmodus (für spawn) */
  121. #endif
  122.  
  123. extern unsigned int _near _cdecl _psp;        /* Programmsegment-Präfix */
  124.  
  125. /* OS Haupt/Unter-Versionsnummer */
  126.  
  127. extern unsigned char _near _cdecl _osmajor;
  128. extern unsigned char _near _cdecl _osminor;
  129.  
  130. #define DOS_MODE    0    /* Real Modus (DOS) */
  131. #define OS2_MODE    1    /* Protected Modus (OS/2) */
  132.  
  133. extern unsigned char _near _cdecl _osmode;
  134.  
  135.  
  136. /* Funktionsprototypen */
  137.  
  138. #ifdef    _MT
  139. double _FAR_ _pascal atof(const char _FAR_ *);
  140. double _FAR_ _pascal strtod(const char _FAR_ *, char _FAR_ * _FAR_ *);
  141. ldiv_t _FAR_ _pascal ldiv(long, long);
  142. #else    /* not _MT */
  143. double _FAR_ _cdecl atof(const char _FAR_ *);
  144. double _FAR_ _cdecl strtod(const char _FAR_ *, char _FAR_ * _FAR_ *);
  145. ldiv_t _FAR_ _cdecl ldiv(long, long);
  146. #endif
  147.  
  148. void _FAR_ _cdecl abort(void);
  149. int _FAR_ _cdecl abs(int);
  150. int _FAR_ _cdecl atexit(void (_cdecl _FAR_ _LOADDS_ *)(void));
  151. int _FAR_ _cdecl atoi(const char _FAR_ *);
  152. long _FAR_ _cdecl atol(const char _FAR_ *);
  153. long double _FAR_ _cdecl _atold(const char _FAR_ *);
  154. void _FAR_ * _FAR_ _cdecl bsearch(const void _FAR_ *, const void _FAR_ *,
  155.     size_t, size_t, int (_FAR_ _cdecl *)(const void _FAR_ *,
  156.     const void _FAR_ *));
  157. void _FAR_ * _FAR_ _cdecl calloc(size_t, size_t);
  158. div_t _FAR_ _cdecl div(int, int);
  159. char _FAR_ * _FAR_ _cdecl ecvt(double, int, int _FAR_ *, int _FAR_ *);
  160. void _FAR_ _cdecl exit(int);
  161. void _FAR_ _cdecl _exit(int);
  162. char _FAR_ * _FAR_ _cdecl fcvt(double, int, int _FAR_ *, int _FAR_ *);
  163. void _FAR_ _cdecl free(void _FAR_ *);
  164. char _FAR_ * _FAR_ _cdecl _fullpath(char _FAR_ *, const char _FAR_ *,
  165.     size_t);
  166. char _FAR_ * _FAR_ _cdecl gcvt(double, int, char _FAR_ *);
  167. char _FAR_ * _FAR_ _cdecl getenv(const char _FAR_ *);
  168. char _FAR_ * _FAR_ _cdecl itoa(int, char _FAR_ *, int);
  169. long _FAR_ _cdecl labs(long);
  170. unsigned long _FAR_ _cdecl _lrotl(unsigned long, int);
  171. unsigned long _FAR_ _cdecl _lrotr(unsigned long, int);
  172. char _FAR_ * _FAR_ _cdecl ltoa(long, char _FAR_ *, int);
  173. void _FAR_ _cdecl _makepath(char _FAR_ *, const char _FAR_ *,
  174.     const char _FAR_ *, const char _FAR_ *, const char _FAR_ *);
  175. void _FAR_ * _FAR_ _cdecl malloc(size_t);
  176. onexit_t _FAR_ _cdecl onexit(onexit_t);
  177. void _FAR_ _cdecl perror(const char _FAR_ *);
  178. int _FAR_ _cdecl putenv(const char _FAR_ *);
  179. void _FAR_ _cdecl qsort(void _FAR_ *, size_t, size_t, int (_FAR_ _cdecl *)
  180.     (const void _FAR_ *, const void _FAR_ *));
  181. unsigned int _FAR_ _cdecl _rotl(unsigned int, int);
  182. unsigned int _FAR_ _cdecl _rotr(unsigned int, int);
  183. int _FAR_ _cdecl rand(void);
  184. void _FAR_ * _FAR_ _cdecl realloc(void _FAR_ *, size_t);
  185. void _FAR_ _cdecl _searchenv(const char _FAR_ *, const char _FAR_ *,
  186.     char _FAR_ *);
  187. void _FAR_ _cdecl _splitpath(const char _FAR_ *, char _FAR_ *,
  188.     char _FAR_ *, char _FAR_ *, char _FAR_ *);
  189. void _FAR_ _cdecl srand(unsigned int);
  190. long _FAR_ _cdecl strtol(const char _FAR_ *, char _FAR_ * _FAR_ *,
  191.     int);
  192. long double _FAR_ _cdecl _strtold(const char _FAR_ *,
  193.     char _FAR_ * _FAR_ *);
  194. unsigned long _FAR_ _cdecl strtoul(const char _FAR_ *,
  195.     char _FAR_ * _FAR_ *, int);
  196. void _FAR_ _cdecl swab(char _FAR_ *, char _FAR_ *, int);
  197. int _FAR_ _cdecl system(const char _FAR_ *);
  198. char _FAR_ * _FAR_ _cdecl ultoa(unsigned long, char _FAR_ *, int);
  199.  
  200. #ifndef tolower     /* wurde tolower-Definition entfernt, Funktion benutzen */
  201. int _FAR_ _cdecl tolower(int);
  202. #endif    /* tolower */
  203.  
  204. #ifndef toupper     /* wurde toupper-Definition entfernt, Funktion benutzen */
  205. int _FAR_ _cdecl toupper(int);
  206. #endif    /* toupper */
  207.