Standard library header <cstdlib>

From cppreference.com
< cpp‎ | header
 
 
Standard Library headers
Note: a slash '/' in a revision mark means that the header was deprecated and/or removed.
Language Support
Concepts
<concepts> (C++20)
Diagnostics
<system_error> (C++11)
General utilities
<bitset>
<tuple> (C++11)
<optional> (C++17)
<any> (C++17)
<variant> (C++17)
<type_traits> (C++11)
<ratio> (C++11)
<chrono> (C++11)
Strings
<charconv> (C++17)
<format> (C++20)

<cwchar>
<cuchar> (C++11)

Localization
<codecvt> (C++11/17)

Containers
<span> (C++20)
<array> (C++11)
<vector>
Iterators
<iterator>
Ranges
<ranges> (C++20)
Algorithms
<execution> (C++17)
Numerics
<bit> (C++20)
<numbers> (C++20)
<cfenv> (C++11)
<cmath>
Input/Output
<cstdio>
<cinttypes> (C++11)
<strstream> (C++98/)

Regular expressions
<regex> (C++11)
Filesystem support
<filesystem> (C++17)
Thread support
<thread> (C++11)
<atomic> (C++11)
<mutex> (C++11)
<shared_mutex> (C++14)
<condition_variable> (C++11)  
<future> (C++11)
<stop_token> (C++20)
<semaphore> (C++20)

<latch> (C++20)
<barrier> (C++20)

C compatibility
<cstdbool> (C++11/17/20)
<ccomplex> (C++11/17/20)
<ctgmath> (C++11/17/20)
<cstdalign> (C++11/17/20)
<ciso646> (until C++20)
<stdatomic.h>
 

This header was originally in the C standard library as <stdlib.h>.

This header provides miscellaneous utilities. Symbols defined here are used by several library components.

Types

structure type, return of the std::div function
(typedef)
structure type, return of the std::ldiv function
(typedef)
(C++11)
structure type, return of the std::lldiv function
(typedef)
unsigned integer type returned by the sizeof operator
(typedef)

Macro constants

indicates program execution execution status
(macro constant)
MB_CUR_MAX
maximum number of bytes in a multibyte character with the current locale
(macro constant)
implementation-defined null pointer constant
(macro constant)
maximum possible value generated by std::rand
(macro constant)

Functions

Process control
causes abnormal program termination (without cleaning up)
(function)
causes normal program termination with cleaning up
(function)
causes quick program termination without completely cleaning up
(function)
(C++11)
causes normal program termination without cleaning up
(function)
registers a function to be called on std::exit() invocation
(function)
registers a function to be called on std::quick_exit invocation
(function)
calls the host environment's command processor
(function)
access to the list of environment variables
(function)
Memory management
allocates memory
(function)
allocates aligned memory
(function)
allocates and zeroes memory
(function)
expands or shrinks previously allocated memory block
(function)
deallocates previously allocated memory
(function)
Numeric string conversion
converts a byte string to a floating point value
(function)
converts a byte string to an integer value
(function)
converts a byte string to an integer value
(function)
converts a byte string to an unsigned integer value
(function)
converts a byte string to a floating point value
(function)
Wide string manipulation
returns the number of bytes in the next multibyte character
(function)
converts the next multibyte character to wide character
(function)
converts a wide character to its multibyte representation
(function)
converts a narrow multibyte character string to wide string
(function)
converts a wide string to narrow multibyte character string
(function)
Miscellaneous algorithms and math
generates a pseudo-random number
(function)
seeds pseudo-random number generator
(function)
sorts a range of elements with unspecified type
(function)
searches an array for an element of unspecified type
(function)
computes absolute value of an integral value (|x|)
(function)
computes quotient and remainder of integer division
(function)

Synopsis

namespace std {
  using size_t = /* see description */;
  using div_t = /* see description */;
  using ldiv_t = /* see description */;
  using lldiv_t = /* see description */;
}
 
#define NULL  /* see description */
#define EXIT_FAILURE  /* see description */
#define EXIT_SUCCESS  /* see description */
#define RAND_MAX  /* see description */
#define MB_CUR_MAX  /* see description */
 
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
 
  // start and termination
  [[noreturn]] void abort() noexcept;
  int atexit(/*c-atexit-handler*/* func) noexcept;
  int atexit(/*atexit-handler*/* func) noexcept;
  int at_quick_exit(/*c-atexit-handler*/* func) noexcept;
  int at_quick_exit(/*atexit-handler*/* func) noexcept;
  [[noreturn]] void exit(int status);
  [[noreturn]] void _Exit(int status) noexcept;
  [[noreturn]] void quick_exit(int status) noexcept;
 
  char* getenv(const char* name);
  int system(const char* string);
 
  // 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* malloc(size_t size);
  void* realloc(void* ptr, size_t size);
 
  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);
  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 long int strtoull(const char* nptr, char** endptr, int base);
 
  // 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);
 
  // C standard library algorithms
  void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
                /*c-compare-pred*/* compar);
  void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
                /*compare-pred*/* compar);
  void qsort(void* base, size_t nmemb, size_t size, /*c-compare-pred*/* compar);
  void qsort(void* base, size_t nmemb, size_t size, /*compare-pred*/* compar);
 
  // low-quality random number generation
  int rand();
  void srand(unsigned int seed);
 
  // absolute values
  constexpr int abs(int j);
  constexpr long int abs(long int j);
  constexpr long long int abs(long long int j);
  constexpr float abs(float j);
  constexpr double abs(double j);
  constexpr long double abs(long double j);
 
  constexpr long int labs(long int j);
  constexpr long long int llabs(long long int j);
 
  constexpr div_t div(int numer, int denom);
  constexpr ldiv_t div(long int numer, long int denom);
  constexpr lldiv_t div(long long int numer, long long int denom);
  constexpr ldiv_t ldiv(long int numer, long int denom);
  constexpr lldiv_t lldiv(long long int numer, long long int denom);
}

See also