root / lab4 / .minix-src / include / c++ / cstdlib @ 14
History | View | Annotate | Download (5.36 KB)
1 |
// -*- C++ -*- |
---|---|
2 |
//===--------------------------- cstdlib ----------------------------------===// |
3 |
// |
4 |
// The LLVM Compiler Infrastructure |
5 |
// |
6 |
// This file is dual licensed under the MIT and the University of Illinois Open |
7 |
// Source Licenses. See LICENSE.TXT for details. |
8 |
// |
9 |
//===----------------------------------------------------------------------===// |
10 |
|
11 |
#ifndef _LIBCPP_CSTDLIB |
12 |
#define _LIBCPP_CSTDLIB |
13 |
|
14 |
/* |
15 |
cstdlib synopsis |
16 |
|
17 |
Macros: |
18 |
|
19 |
EXIT_FAILURE |
20 |
EXIT_SUCCESS |
21 |
MB_CUR_MAX |
22 |
NULL |
23 |
RAND_MAX |
24 |
|
25 |
namespace std |
26 |
{ |
27 |
|
28 |
Types: |
29 |
|
30 |
size_t |
31 |
div_t |
32 |
ldiv_t |
33 |
lldiv_t // C99 |
34 |
|
35 |
double atof (const char* nptr); |
36 |
int atoi (const char* nptr); |
37 |
long atol (const char* nptr); |
38 |
long long atoll(const char* nptr); // C99 |
39 |
double strtod (const char* restrict nptr, char** restrict endptr); |
40 |
float strtof (const char* restrict nptr, char** restrict endptr); // C99 |
41 |
long double strtold (const char* restrict nptr, char** restrict endptr); // C99 |
42 |
long strtol (const char* restrict nptr, char** restrict endptr, int base); |
43 |
long long strtoll (const char* restrict nptr, char** restrict endptr, int base); // C99 |
44 |
unsigned long strtoul (const char* restrict nptr, char** restrict endptr, int base); |
45 |
unsigned long long strtoull(const char* restrict nptr, char** restrict endptr, int base); // C99 |
46 |
int rand(void); |
47 |
void srand(unsigned int seed); |
48 |
void* calloc(size_t nmemb, size_t size); |
49 |
void free(void* ptr); |
50 |
void* malloc(size_t size); |
51 |
void* realloc(void* ptr, size_t size); |
52 |
void abort(void); |
53 |
int atexit(void (*func)(void)); |
54 |
void exit(int status); |
55 |
void _Exit(int status); |
56 |
char* getenv(const char* name); |
57 |
int system(const char* string); |
58 |
void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, |
59 |
int (*compar)(const void *, const void *)); |
60 |
void qsort(void* base, size_t nmemb, size_t size, |
61 |
int (*compar)(const void *, const void *)); |
62 |
int abs( int j); |
63 |
long abs( long j); |
64 |
long long abs(long long j); // C++0X |
65 |
long labs( long j); |
66 |
long long llabs(long long j); // C99 |
67 |
div_t div( int numer, int denom); |
68 |
ldiv_t div( long numer, long denom); |
69 |
lldiv_t div(long long numer, long long denom); // C++0X |
70 |
ldiv_t ldiv( long numer, long denom); |
71 |
lldiv_t lldiv(long long numer, long long denom); // C99 |
72 |
int mblen(const char* s, size_t n); |
73 |
int mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n); |
74 |
int wctomb(char* s, wchar_t wchar); |
75 |
size_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n); |
76 |
size_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n); |
77 |
int at_quick_exit(void (*func)(void)) // C++11 |
78 |
void quick_exit(int status); // C++11 |
79 |
void *aligned_alloc(size_t alignment, size_t size); // C11 |
80 |
|
81 |
} // std |
82 |
|
83 |
*/ |
84 |
|
85 |
#include <__config> |
86 |
#include <stdlib.h> |
87 |
#ifdef _LIBCPP_MSVCRT |
88 |
#include "support/win32/locale_win32.h" |
89 |
#endif // _LIBCPP_MSVCRT |
90 |
|
91 |
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
92 |
#pragma GCC system_header |
93 |
#endif |
94 |
|
95 |
_LIBCPP_BEGIN_NAMESPACE_STD |
96 |
|
97 |
using ::size_t; |
98 |
using ::div_t; |
99 |
using ::ldiv_t; |
100 |
#ifndef _LIBCPP_HAS_NO_LONG_LONG |
101 |
using ::lldiv_t; |
102 |
#endif // _LIBCPP_HAS_NO_LONG_LONG |
103 |
using ::atof; |
104 |
using ::atoi; |
105 |
using ::atol; |
106 |
#ifndef _LIBCPP_HAS_NO_LONG_LONG |
107 |
using ::atoll; |
108 |
#endif // _LIBCPP_HAS_NO_LONG_LONG |
109 |
using ::strtod; |
110 |
using ::strtof; |
111 |
using ::strtold; |
112 |
using ::strtol; |
113 |
#ifndef _LIBCPP_HAS_NO_LONG_LONG |
114 |
using ::strtoll; |
115 |
#endif // _LIBCPP_HAS_NO_LONG_LONG |
116 |
using ::strtoul; |
117 |
#ifndef _LIBCPP_HAS_NO_LONG_LONG |
118 |
using ::strtoull; |
119 |
#endif // _LIBCPP_HAS_NO_LONG_LONG |
120 |
using ::rand; |
121 |
using ::srand; |
122 |
using ::calloc; |
123 |
using ::free; |
124 |
using ::malloc; |
125 |
using ::realloc; |
126 |
using ::abort; |
127 |
using ::atexit; |
128 |
using ::exit; |
129 |
using ::_Exit; |
130 |
using ::getenv; |
131 |
using ::system; |
132 |
using ::bsearch; |
133 |
using ::qsort; |
134 |
#undef abs |
135 |
using ::abs; |
136 |
#undef labs |
137 |
using ::labs; |
138 |
#ifndef _LIBCPP_HAS_NO_LONG_LONG |
139 |
#undef llabs |
140 |
using ::llabs; |
141 |
#endif // _LIBCPP_HAS_NO_LONG_LONG |
142 |
#undef div |
143 |
using ::div; |
144 |
#undef ldiv |
145 |
using ::ldiv; |
146 |
#ifndef _LIBCPP_HAS_NO_LONG_LONG |
147 |
#undef lldiv |
148 |
using ::lldiv; |
149 |
#endif // _LIBCPP_HAS_NO_LONG_LONG |
150 |
#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS |
151 |
using ::mblen; |
152 |
using ::mbtowc; |
153 |
using ::wctomb; |
154 |
#endif |
155 |
using ::mbstowcs; |
156 |
using ::wcstombs; |
157 |
#ifdef _LIBCPP_HAS_QUICK_EXIT |
158 |
using ::at_quick_exit; |
159 |
using ::quick_exit; |
160 |
#endif |
161 |
#ifdef _LIBCPP_HAS_C11_FEATURES |
162 |
using ::aligned_alloc; |
163 |
#endif |
164 |
|
165 |
// MSVCRT already has the correct prototype in <stdlib.h> #ifdef __cplusplus |
166 |
#if !defined(_LIBCPP_MSVCRT) && !defined(__sun__) && !defined(_AIX) |
167 |
inline _LIBCPP_INLINE_VISIBILITY long abs( long __x) _NOEXCEPT {return labs(__x);} |
168 |
#ifndef _LIBCPP_HAS_NO_LONG_LONG |
169 |
inline _LIBCPP_INLINE_VISIBILITY long long abs(long long __x) _NOEXCEPT {return llabs(__x);} |
170 |
#endif // _LIBCPP_HAS_NO_LONG_LONG |
171 |
|
172 |
inline _LIBCPP_INLINE_VISIBILITY ldiv_t div( long __x, long __y) _NOEXCEPT {return ldiv(__x, __y);} |
173 |
#ifndef _LIBCPP_HAS_NO_LONG_LONG |
174 |
inline _LIBCPP_INLINE_VISIBILITY lldiv_t div(long long __x, long long __y) _NOEXCEPT {return lldiv(__x, __y);} |
175 |
#endif // _LIBCPP_HAS_NO_LONG_LONG |
176 |
#endif // _LIBCPP_MSVCRT |
177 |
|
178 |
_LIBCPP_END_NAMESPACE_STD |
179 |
|
180 |
#endif // _LIBCPP_CSTDLIB |