XenevaOS
Loading...
Searching...
No Matches
stdlib.h
Go to the documentation of this file.
1
30#ifndef __STDLIB_H__
31#define __STDLIB_H__
32
33#include <_xeneva.h>
34#include <stddef.h>
35#include <_xeprint.h>
36
37#ifdef __cplusplus
39#endif
40
41#include <stdarg.h>
42
43#define max(a, b) ((a) > (b) ? (a) : (b))
44#define min(a, b) ((a) < (b) ? (a) : (b))
45#define offsetof(type, field) ((unsigned long)&(((type*)0L)->field))
46
47#define EXIT_FAILURE 1
48#define EXIT_SUCCESS 0
49
50#define RAND_MAX (0x7fffffff)
51
52 XE_LIB int atoi(const char*);
53 XE_LIB long atol(const char*);
54#define atoll(string) ((long long)_str2num(string, 10, 1, NULL))
55
56 XE_LIB double atof(const char*);
57 XE_LIB int abs(int);
58 XE_LIB void* malloc(unsigned int);
59 XE_LIB void free(void* ptr);
60 XE_LIB void* realloc(void* address, unsigned int new_size);
61 XE_LIB void* calloc(unsigned long long num, unsigned long long size);
62 XE_LIB int mblen(const char*, size_t);
63 XE_LIB size_t mbstowcs(wchar_t*, const char*, size_t);
64 XE_LIB int mbtowc(wchar_t*, const char*, size_t);
65 XE_LIB char* mkdtemp(char*);
66 XE_LIB char* mkstemp(char*);
67 XE_LIB int rand(void);
68#define random() rand()
69 XE_LIB size_t wcstombs(char*, const wchar_t*, size_t);
70 XE_LIB int wctomb(char*, wchar_t);
71 XE_LIB void qsort(
72 void* base, size_t num, size_t size, int (*comparator)(const void*, const void*));
73
74 XE_LIB int system(const char* command);
75
76 XE_LIB char* sztoa(size_t value, char* str, int base);
77 /*
78 * setenv -- set environment variables
79 * @param name -- Key name
80 * @param value -- value of the variable
81 * @param overwrite -- 0 - append at the last, 1 force-write
82 */
83 XE_LIB int setenv(const char* name, const char* value, int overwrite);
84 XE_LIB char* getenv(const char*);
85 XE_LIB void exit(int errno);
86
87 XE_LIB int vsprintf(char* str, const char* format, va_list ap);
88 XE_LIB long strtol(const char* nptr, char** endptr, int base);
89 XE_LIB unsigned long strtoul(const char* nptr, char** endptr, int base);
90 XE_LIB void itoa_s(int i, unsigned base, char* buf);
92 XE_LIB void abort(void);
93
94// Functions are from Visopsys project
95// These are unofficial, Andy-special extensions of the atoi() and atoll()
96// paradigm
97// Visopsys, Copyright (C) 1998-2020 J. Andrew McLaughlin
98#define atou(string) ((unsigned)_str2num(string, 10, 0, NULL))
99#define atoull(string) _str2num(string, 10, 0, NULL)
100#define atoo(string) ((unsigned)_str2num(string, 8, 0, NULL))
101#define atooll(string) _str2num(string, 8, 0, NULL)
102#define dtoa(num, string, round) _dbl2str(num, string, round)
103#define ftoa(num, string) _flt2str(num, string, round)
104#define itoa(num, string) _num2str(num, string, 10, 1)
105#define itouo(num, string) _num2str(num, string, 10, 1)
106#define itoux(num, string) _num2str(num, string, 16, 0);
107#define itox(num, string) _num2str(num, string, 16, 1)
108#define lltoa(num, string) _lnum2str(num, string, 10, 1)
109#define lltouo(num, string) _lnum2str(num, string, 8, 0)
110#define lltoux(num, string) _lnum2str(num, string, 16, 0)
111#define lltox(num, string) _lnum2str(num, string, 16, 1)
112#define xtoi(string) ((int)_str2num(string, 16, 1, NULL))
113#define xtoll(string) ((long long)_str2num(string, 16, 1, NULL))
114#define ulltoa(num, string) _lnum2str(num, string, 10, 0)
115#define utoa(num, string) _num2str(num, string, 10, 0)
116
117#ifdef __cplusplus
118}
119#endif
120
121#endif
#define XE_LIB
Definition _xeneva.h:55
#define XE_EXTERN
Definition _xeneva.h:50
char * va_list
Definition acmsvcex.h:186
#define errno
Definition dlmalloc.c:616
XE_LIB void PrintOSName()
XE_LIB double atof(const char *)
Definition stdlib.cpp:64
XE_LIB void exit(int errno)
Definition stdlib.cpp:231
XE_LIB void itoa_s(int i, unsigned base, char *buf)
Definition stdlib.cpp:254
XE_LIB size_t wcstombs(char *, const wchar_t *, size_t)
Definition stdlib.cpp:178
XE_LIB char * mkdtemp(char *)
XE_LIB unsigned long strtoul(const char *nptr, char **endptr, int base)
converts a string to an unsigned long
Definition stdlib.cpp:345
XE_LIB long strtol(const char *nptr, char **endptr, int base)
converts a string to a long
Definition stdlib.cpp:265
XE_LIB size_t mbstowcs(wchar_t *, const char *, size_t)
Definition stdlib.cpp:104
XE_LIB char * mkstemp(char *)
XE_LIB char * getenv(const char *)
Definition stdlib.cpp:250
XE_LIB int abs(int)
Definition stdlib.cpp:41
XE_LIB void * realloc(void *address, unsigned int new_size)
Definition _heap.cpp:6421
XE_LIB long atol(const char *)
XE_LIB int mblen(const char *, size_t)
Definition stdlib.cpp:84
XE_LIB char * sztoa(size_t value, char *str, int base)
Definition clib.cpp:114
XE_LIB int vsprintf(char *str, const char *format, va_list ap)
Definition stdio.cpp:364
XE_LIB void * calloc(unsigned long long num, unsigned long long size)
Definition _heap.cpp:6430
XE_LIB void * malloc(unsigned int)
Definition _heap.cpp:6404
XE_LIB int mbtowc(wchar_t *, const char *, size_t)
Definition stdlib.cpp:129
XE_LIB void abort(void)
Definition stdlib.cpp:412
XE_LIB int rand(void)
NOT IMPLEMENTED.
Definition stdio.cpp:132
XE_LIB int wctomb(char *, wchar_t)
Definition stdlib.cpp:161
XE_LIB int atoi(const char *)
Definition stdio.cpp:107
XE_LIB void qsort(void *base, size_t num, size_t size, int(*comparator)(const void *, const void *))
Definition qsort.cpp:78
XE_LIB int system(const char *command)
Definition stdlib.cpp:418
XE_LIB void free(void *ptr)
Definition uspios.c:35
XE_LIB int setenv(const char *name, const char *value, int overwrite)
Definition stdlib.cpp:242