close
Пространства имён
Варианты
Действия

Заголовочный файл стандартной библиотеки <cstdlib>

Материал из cppreference.com
 
 
Заголовочные файлы стандартной библиотеки
Языковая поддержка
Концепты
<concepts> (C++20)
Диагностика
<system_error> (C++11)

Управление памятью
<memory_resource> (C++17)  
Метапрограммирование
<type_traits> (C++11)
<ratio> (C++11)
Общие утилиты
<utility>
<tuple> (C++11)
<optional> (C++17)
<variant> (C++17)
<any> (C++17)
<expected> (C++23)
<bitset>

<charconv> (C++17)
<format> (C++20)
<bit> (C++20)

Строки
<cuchar> (C++11)

Контейнеры
<flat_set> (C++23)
<span> (C++20)
<mdspan> (C++23)

Итераторы
<iterator>
Диапазоны
<ranges> (C++20)
<generator> (C++23)
Алгоритмы
Числа
<cfenv> (C++11)
<complex>
<numbers> (C++20)

Время
<chrono> (C++11)
Локализация
<codecvt> (C++11/17*)
Ввод/вывод
<filesystem> (C++17)
<cstdio>
<cinttypes> (C++11)
<strstream> (C++98*)
Регулярные выражения
<regex> (C++11)
Поддержка конкуренции
<stop_token> (C++20)
<thread> (C++11)
<atomic> (C++11)
<stdatomic.h> (C++23)
<mutex> (C++11)
<shared_mutex> (C++14)
<condition_variable> (C++11)  
<semaphore> (C++20)
<latch> (C++20)
<barrier> (C++20)
<future> (C++11)

Совместимость с C
<cstdbool> (C++11/17/20*)  
<ccomplex> (C++11/17/20*)
<ctgmath> (C++11/17/20*)

<cstdalign> (C++11/17/20*)

<ciso646> (до C++20)

 

Этот заголовочный файл изначально был в стандартной библиотеке C как <stdlib.h>.

Этот заголовочный файл включает различные утилиты. Определённые здесь символы используются в некоторых компонентах библиотеки.

Типы

тип структуры, возвращаемой std::div
(определение типа) [править]
тип структуры, возвращаемой std::ldiv
(определение типа) [править]
(C++11)
тип структуры, возвращаемой std::lldiv
(определение типа) [править]
беззнаковый целочисленный тип, возвращаемый оператором sizeof
(определение типа) [править]

Макро константы

указывает статус выполнения программы
(макроконстанта) [править]
MB_CUR_MAX
максимальное количество байтов в многобайтовом символе с текущей локалью
(макроконстанта) [править]
определяемая реализацией константа для нулевого указателя
(макроконстанта) [править]
максимально возможное значение, генерируемое std::rand
(макроконстанта) [править]

Функции

Контроль над процессом
вызывает аварийное завершение программы (без очистки)
(функция) [править]
вызывает нормальное завершение программы с очисткой
(функция) [править]
вызывает быстрое завершение программы без полной очистки
(функция) [править]
(C++11)
вызывает нормальное завершение программы без очистки
(функция) [править]
регистрирует функцию, которая будет вызываться при вызове std::exit()
(функция) [править]
регистрирует функцию, которая будет вызываться при вызове std::quick_exit
(функция) [править]
вызывает командный процессор среды узла
(функция) [править]
доступ к списку переменных среды
(функция) [править]
Управление памятью
выделяет память
(функция) [править]
выделяет выровненную память
(функция) [править]
выделяет и обнуляет память
(функция) [править]
расширяет или сжимает ранее выделенный блок памяти
(функция) [править]
освобождает ранее выделенную память
(функция) [править]
Преобразование числа в строку
преобразует байтовую строку в значение числа с плавающей запятой
(функция) [править]
преобразует байтовую строку в целочисленное значение
(функция) [править]
преобразует байтовую строку в целочисленное значение
(функция) [править]
преобразует байтовую строку в беззнаковое целое число
(функция) [править]
преобразует байтовую строку в число с плавающей запятой
(функция) [править]
Манипуляции с широкими строками
возвращает количество байтов в следующем мультибайтовом символе
(функция) [править]
преобразует следующий многобайтовый символ в широкий символ
(функция) [править]
преобразует широкий символ в его многобайтовое представление
(функция) [править]
преобразует узкую многобайтовую строку символов в широкую строку
(функция) [править]
преобразует широкую строку в узкую многобайтовую строку символов
(функция) [править]
Разные алгоритмы и математика
генерирует псевдослучайные числа
(функция) [править]
инициализирует псевдогенератор случайных чисел
(функция) [править]
сортирует диапазон элементов с неопределённым типом
(функция) [править]
ищет в массиве элемент любого типа
(функция) [править]
вычисляет абсолютное значение целого числа (|x|)
(функция) [править]
вычисляет частное и остаток от целочисленного деления
(функция) [править]

Краткое описание

namespace std {
  using size_t =  /* смотрите описание */; // автономная
  using div_t =   /* смотрите описание */; // автономная
  using ldiv_t =  /* смотрите описание */; // автономная
  using lldiv_t = /* смотрите описание */; // автономная
}

#define NULL         /* смотрите описание */ // автономная
#define EXIT_FAILURE /* смотрите описание */ // автономная
#define EXIT_SUCCESS /* смотрите описание */ // автономная
#define RAND_MAX     /* смотрите описание */
#define MB_CUR_MAX   /* смотрите описание */

namespace std {
  // Псевдонимы функций только для пояснения
  // только для пояснения
  extern "C" using /*c-atexit-обработчик*/ = void();
  // только для пояснения
  extern "C++" using /*atexit-обработчик*/ = void();
  // только для пояснения
  extern "C" using /*c-предикат-сравнения*/ = int(const void*, const void*);
  // только для пояснения
  extern "C++" using /*предикат-сравнения*/ = int(const void*, const void*);

  // начало и окончание
  [[noreturn]] void abort() noexcept;                        // автономная
  int atexit(/*c-atexit-обработчик*/* func) noexcept;        // автономная
  int atexit(/*atexit-обработчик*/* func) noexcept;          // автономная
  int at_quick_exit(/*c-atexit-обработчик*/* func) noexcept; // автономная
  int at_quick_exit(/*atexit-обработчик*/* 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
  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);

  // функции преобразования многобайтовых/широких строк и символов
  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
  void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
                /*c-предикат-сравнения*/* compar); // автономная
  void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
                /*предикат-сравнения*/* compar); // автономная
  // автономная
  void qsort(void* base, size_t nmemb, size_t size, /*c-предикат-сравнения*/* compar);
  // автономная
  void qsort(void* base, size_t nmemb, size_t size, /*предикат-сравнения*/* compar);

  // некачественная генерация случайных чисел
  int rand();
  void srand(unsigned int seed);

  // абсолютные значения
  constexpr int abs(int j);                     // автономная
  constexpr long int abs(long int j);           // автономная
  constexpr long long int abs(long long int j); // автономная
  constexpr /* тип-с-плавающей-запятой */
  abs(/* тип-с-плавающей-запятой */ 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); // автономная
}

Отчёты о дефектах

Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:

Номер Применён Поведение в стандарте Корректное поведение
LWG 286 C++98 определение size_t не было предоставлено в <cstdlib> предоставлено

Смотрите также