17 Language support library [support]

17.2 Common definitions [support.types]

17.2.2 Header <cstdlib> synopsis [cstdlib.syn]

namespace std { using size_t = see below; / freestanding using div_t = see below; / freestanding using ldiv_t = see below; / freestanding using lldiv_t = see below; / freestanding } #define NULL see below / freestanding #define EXIT_FAILURE see below / freestanding #define EXIT_SUCCESS see below / freestanding #define RAND_MAX see below #define MB_CUR_MAX see below namespace std { / Exposition-only function type aliases extern "C" using c-atexit-handler = void(); / exposition only extern "C++" using atexit-handler = void(); / exposition only extern "C" using c-compare-pred = int(const void*, const void*); / exposition only extern "C++" using compare-pred = int(const void*, const void*); / exposition only / [support.start.term], start and termination [[noreturn]] void abort() noexcept; / freestanding int atexit(c-atexit-handler* func) noexcept; / freestanding int atexit(atexit-handler* func) noexcept; / freestanding int at_quick_exit(c-atexit-handler* func) noexcept; / freestanding int at_quick_exit(atexit-handler* func) noexcept; / freestanding [[noreturn]] void exit(int status); / freestanding [[noreturn]] void _Exit(int status) noexcept; / freestanding [[noreturn]] void quick_exit(int status) noexcept; / freestanding char* getenv(const char* name); int system(const char* string); / [c.malloc], C library memory allocation void* aligned_alloc(size_t alignment, size_t size); void* calloc(size_t nmemb, size_t size); void free(void* ptr); void free_sized(void* ptr, size_t size); void free_aligned_sized(void* ptr, size_t alignment, size_t size); void* malloc(size_t size); void* realloc(void* ptr, size_t size); size_t memalignment(const void* p); / freestanding double atof(const char* nptr); int atoi(const char* nptr); long int atol(const char* nptr); long long int atoll(const char* nptr); double strtod(const char* nptr, char* endptr); int strfromd(char* s, size_t n, const char* format, double fp); int strfromf(char* s, size_t n, const char* format, float fp); int strfroml(char* s, size_t n, const char* format, long double fp); float strtof(const char* nptr, char* endptr); long double strtold(const char* nptr, char* endptr); long int strtol(const char* nptr, char* endptr, int base); long long int strtoll(const char* nptr, char* endptr, int base); unsigned long int strtoul(const char* nptr, char* endptr, int base); unsigned long int strtoull(const char* nptr, char* endptr, int base); / [c.mb.wcs], multibyte / wide string and character conversion functions int mblen(const char* s, size_t n); int mbtowc(wchar_t* pwc, const char* s, size_t n); int wctomb(char* s, wchar_t wchar); size_t mbstowcs(wchar_t* pwcs, const char* s, size_t n); size_t wcstombs(char* s, const wchar_t* pwcs, size_t n); / [alg.c.library], C standard library algorithms void* bsearch(const void* key, void* base, size_t nmemb, size_t size, / freestanding c-compare-pred* compar); void* bsearch(const void* key, void* base, size_t nmemb, size_t size, / freestanding compare-pred* compar); const void* bsearch(const void* key, const void* base, size_t nmemb, / freestanding size_t size, c-compare-pred* compar); const void* bsearch(const void* key, const void* base, size_t nmemb, / freestanding size_t size, compare-pred* compar); void qsort(void* base, size_t nmemb, size_t size, c-compare-pred* compar); / freestanding void qsort(void* base, size_t nmemb, size_t size, compare-pred* compar); / freestanding / [c.math.rand], low-quality random number generation int rand(); void srand(unsigned int seed); / [c.math.abs], absolute values constexpr int abs(int j); / freestanding constexpr long int abs(long int j); / freestanding constexpr long int abs(long long int j); / freestanding constexpr floating-point-type abs(floating-point-type j); / freestanding-deleted constexpr long int labs(long int j); / freestanding constexpr long int llabs(long long int j); / freestanding constexpr div_t div(int numer, int denom); / freestanding constexpr ldiv_t div(long int numer, long int denom); / freestanding; see [library.c] constexpr lldiv_t div(long long int numer, long long int denom); / freestanding; see [library.c] constexpr ldiv_t ldiv(long int numer, long int denom); / freestanding constexpr lldiv_t lldiv(long long int numer, long long int denom); / freestanding }
The contents and meaning of the header <cstdlib> are the same as the C standard library header <stdlib.h>, except that it does not declare the types wchar_t or once_flag, and does not declare the function call_once, and except as noted in [support.types.nullptr], [support.types.layout], [support.start.term], [c.malloc], [c.mb.wcs], [alg.c.library], [c.math.rand], and [c.math.abs].
[Note 1: 
Several functions have additional overloads in this document, but they have the same behavior as in the C standard library.
— end note]
See also: ISO/IEC 9899:2024, 7.24

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant