]> git.llucax.com Git - software/druntime.git/blob - import/core/stdc/stdlib.d
* Moved sys into core.sys
[software/druntime.git] / import / core / stdc / stdlib.d
1 /**
2  * D header file for C99.
3  *
4  * Copyright: Public Domain
5  * License:   Public Domain
6  * Authors:   Sean Kelly
7  * Standards: ISO/IEC 9899:1999 (E)
8  */
9 module core.stdc.stdlib;
10
11 private import core.stdc.stddef;
12 private import core.stdc.config;
13
14 extern (C):
15
16 struct div_t
17 {
18     int quot,
19         rem;
20 }
21
22 struct ldiv_t
23 {
24     int quot,
25         rem;
26 }
27
28 struct lldiv_t
29 {
30     long quot,
31          rem;
32 }
33
34 const EXIT_SUCCESS  = 0;
35 const EXIT_FAILURE  = 1;
36 const RAND_MAX      = 32767;
37 const MB_CUR_MAX    = 1;
38
39 double  atof(in char* nptr);
40 int     atoi(in char* nptr);
41 c_long  atol(in char* nptr);
42 long    atoll(in char* nptr);
43
44 double  strtod(in char* nptr, char** endptr);
45 float   strtof(in char* nptr, char** endptr);
46 real    strtold(in char* nptr, char** endptr);
47 c_long  strtol(in char* nptr, char** endptr, int base);
48 long    strtoll(in char* nptr, char** endptr, int base);
49 c_ulong strtoul(in char* nptr, char** endptr, int base);
50 ulong   strtoull(in char* nptr, char** endptr, int base);
51
52 double  wcstod(in wchar_t* nptr, wchar_t** endptr);
53 float   wcstof(in wchar_t* nptr, wchar_t** endptr);
54 real    wcstold(in wchar_t* nptr, wchar_t** endptr);
55 c_long  wcstol(in wchar_t* nptr, wchar_t** endptr, int base);
56 long    wcstoll(in wchar_t* nptr, wchar_t** endptr, int base);
57 c_ulong wcstoul(in wchar_t* nptr, wchar_t** endptr, int base);
58 ulong   wcstoull(in wchar_t* nptr, wchar_t** endptr, int base);
59
60 int     rand();
61 void    srand(uint seed);
62
63 void*   malloc(size_t size);
64 void*   calloc(size_t nmemb, size_t size);
65 void*   realloc(void* ptr, size_t size);
66 void    free(void* ptr);
67
68 void    abort();
69 void    exit(int status);
70 int     atexit(void function() func);
71 void    _Exit(int status);
72
73 char*   getenv(in char* name);
74 int     system(in char* string);
75
76 void*   bsearch(in void* key, in void* base, size_t nmemb, size_t size, int function(in void*, in void*) compar);
77 void    qsort(void* base, size_t nmemb, size_t size, int function(in void*, in void*) compar);
78
79 int     abs(int j);
80 c_long  labs(c_long j);
81 long    llabs(long j);
82
83 div_t   div(int numer, int denom);
84 ldiv_t  ldiv(c_long numer, c_long denom);
85 lldiv_t lldiv(long numer, long denom);
86
87 int     mblen(in char* s, size_t n);
88 int     mbtowc(wchar_t* pwc, in char* s, size_t n);
89 int     wctomb(char*s, wchar_t wc);
90 size_t  mbstowcs(wchar_t* pwcs, in char* s, size_t n);
91 size_t  wcstombs(char* s, in wchar_t* pwcs, size_t n);
92
93 version( DigitalMars )
94 {
95     void* alloca(size_t size);
96 }
97 else version( GNU )
98 {
99     private import gcc.builtins;
100     alias gcc.builtins.__builtin_alloca alloca;
101 }