<cstdlib>
Включает заголовок <stdlib.h> стандартной библиотеки C и добавляет связанные имена в std пространство имен. Включение этого заголовка гарантирует, что имена, объявленные с помощью внешней компоновки в заголовке стандартной библиотеки C, объявляются в std пространстве имен.
<stdlib.h> не включает тип wchar_t .
Требования
Заголовок: <cstdlib>
Пространство имен: std
Пространство имен и макросы
Только функции экспозиции
Функции запуска и завершения
| Функция | Описание |
|---|---|
| _Exit | Завершает программу без использования деструкторов или зарегистрированных функций. |
| abort | Завершает программу без использования деструкторов. |
| atexit | Регистрирует функцию для завершения программы. |
| exit | Уничтожает объекты с потоком и статическим хранилищем, а затем возвращает управление. |
| at_quick_exit | Регистрирует функцию без аргументов для завершения программы. |
| quick_exit | Регистрирует функцию с сохраненными объектами для завершения программы. |
| getenv | См. справочник по стандартной библиотеке C. |
| system | См. справочник по стандартной библиотеке C. |
_Exit
Remarks
Программа завершается без выполнения деструкторов для объектов автоматического, потокового или статического хранения и без передачи функций atexit() вызова. Функция _Exit является сигналобезопасной.
abort
Remarks
Программа завершается без выполнения деструкторов для объектов автоматического, потокового или статического хранения и без передачи функций atexit() вызова. Функция abort является сигналобезопасной.
at_quick_exit
Возвращаемое значение
Ноль, если регистрация выполнена успешно, но ненулевая, если она завершается ошибкой.
Remarks
Функции at_quick_exit() регистрируют функцию func , которая вызывается без аргументов при quick_exit() вызове. Вызов at_quick_exit() этого не происходит до того, как все вызовы quick_exit() могут не быть успешными. Функции at_quick_exit() не представляют расу данных. Порядок регистрации может быть неопределенным, если at_quick_exit() был вызван из нескольких потоков. Так как at_quick_exit() регистрация отличается от atexit() регистраций, приложениям может потребоваться вызвать обе функции регистрации, используя один и тот же аргумент. MSVC поддерживает регистрацию не менее 32 функций.
atexit
Remarks
Функции atexit() регистрируют функцию, на которую func указывает вызов без аргументов при обычном завершении программы. Вызов atexit() этого не происходит до того, как вызов может не завершиться exit() успешно. Функции atexit() не представляют расу данных.
Возвращаемое значение
Возвращает ноль, если регистрация выполнена успешно, но ненулевое значение, если оно завершается ошибкой.
Remarks
Во-первых, удаляются объекты с длительностью хранения потоков и связанными с текущим потоком.
Затем удаляются объекты со статическим сроком хранения, а функции, зарегистрированные вызовом atexit() . Автоматические объекты не уничтожаются при exit() вызове. Если элемент управления покидает зарегистрированную функцию, вызываемую exit() из-за того, что функция не предоставляет обработчик для вызванного исключения, std::terminate() вызывается. Функция вызывается один раз при каждой регистрации. Объекты с автоматической длительностью хранения уничтожаются в программе, функция которой main не содержит автоматических объектов и выполняет вызов exit() . Элемент управления можно передать непосредственно в такую main функцию, создав исключение, в которое попало main .
Затем все открытые потоки C (в качестве посредника сигнатуры функций, объявленные в <cstdio> ) с незаписанными буферизованными данными, очищаются, все открытые потоки C закрываются, а все файлы, созданные путем вызова tmpfile() , удаляются.
Наконец, элемент управления возвращается в среду узла. Если status значение равно нулю или EXIT_SUCCESS возвращается определяемая реализацией форма успешного завершения состояния. MSVC возвращает нулевое значение. В противном случае status EXIT_FAILURE MSVC возвращает значение 3. В противном случае MSVC возвращает status значение параметра.
getenv
quick_exit
Remarks
Как правило, функции, зарегистрированные вызовами at_quick_exit() , вызываются в обратном порядке их регистрации. Этот порядок не применяется к функциям, зарегистрированным после вызова других зарегистрированных функций. При вызове объекты не уничтожаются quick_exit() . Если элемент управления покидает зарегистрированную функцию, вызываемую quick_exit() из-за того, что функция не предоставляет обработчик для вызванного исключения, std::terminate() вызывается. Функция, зарегистрированная с помощью at_quick_exit() , вызывается потоком, который вызывает quick_exit() , который может быть потоком, отличным от потока, зарегистрированного в нем. Это означает, что зарегистрированные функции не должны полагаться на идентификаторы объектов с длительностью хранения потоков. После вызова зарегистрированных функций quick_exit() вызовы _Exit(status) . Стандартные буферы файлов не очищаются. Функция quick_exit() является сигналобезопасной при регистрации at_quick_exit() функций.
system
Функции выделения памяти
Remarks
Эти функции имеют семантику, указанную в стандартной библиотеке C. MSVC не поддерживает функцию aligned_alloc . C11, указанный aligned_alloc() таким образом, который несовместим с реализацией free() Корпорации Майкрософт, а именно, должен free() иметь возможность обрабатывать высокоровненные выделения.
Stdlib.h
stdlib.h — заголовок (заголовочный файл) стандартной библиотеки общего назначения языка Си, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие. Заголовок вполне совместим с C++ и в C++ известен как cstdlib . Название «stdlib» расшифровывается как «standard library» (стандартная библиотека).
Содержание
Member functions
Члены stdlib.h можно разделить на следующие категории: преобразования типов, управление памятью, контроль процесса, сортировка и поиск, математика.
| Имя | Описание |
|---|---|
| Преобразование типов | |
| atof | строка в число двойной точности (НЕ float) |
| atoi | строка в целое число |
| atol | строка в длинное целое число |
| strtod | строка в число двойной точности (double) |
| strtol | строка в длинное целое число |
| strtoul | строка в беззнаковое длинное целое число (unsigned long int) |
| Генерация псевдослучайных последовательностей | |
| rand | генерирует псевдослучайное значение |
| srand | устанавливает начальное значение генератора псевдослучайных чисел |
| Выделение и освобождение памяти | |
| malloc calloc realloc |
выделяет память из кучи |
| free | освобождает память обратно в кучу |
| Контроль процесса выполнения программы | |
| abort | некорректное завершение выполнения |
| atexit | регистрирует обратный вызов функции для выхода из программы |
| exit | завершает выполнение программы |
| getenv | извлекает переменные окружения |
| system | выполняет внешнюю команду |
| Сортировка и поиск | |
| bsearch | двоичный поиск в массиве |
| qsort | сортировка массива |
| Математика | |
| abs labs |
абсолютная величина |
| div ldiv |
деление целых чисел |
| Многобайтовые операции/ широкие символы | |
| mblen | размер многобайтовых символов [1] |
| mbtowc, wctomb, mbstowcs, wcstombs | преобразование многобайтовых и широких символов [2] |
Члены-константы
Заголовочные файлы stdlib.h и stddef.h определяют макрос NULL, который порождает константный нуль-указатель, и представляет собой значение указателя, гарантирующего корректность указателя, не указывающего на действительный (корректный) адрес в памяти.
Варианты
NULL может быть определен как константное выражение, равное целому нулевому числу (нулю), длинному целому нулю, или нуль приводится к указателю типа void *:
Несмотря на то, что константа нуль-указателя всегда представляется в Си символьной константой 0 или 0, приведенным к void-указателю, реальное битовое представление подобного указателя зависит от системы и может содержать однобитовые значения.
Типы членов-данных
size_t
Заголовочные файлы stdlib.h и stddef.h определяют тип данных, называемый size_t [3] , который используется для представления размера объекта. Библиотечные функции, использующие размеры, ожидают типа size_t , а оператор sizeof превращается в size_t .
Настоящий тип size_t платформо-независим; распространенной ошибкой является подразумевание size_t как беззнаковое целое ( unsigned int ), что может привести к ошибкам программирования, [4] причем в первую очередь это касается 64-битных архитектур.
div_t, ldiv_t
Также определены два менее широко используемых типа данных div_t и ldiv_t . Они являются возвращаемыми типами функций div и ldiv. Стандарт определяет их следующим образом:
Нестандартные функции
itoa — общая функция, входящая во множество реализаций stdlib.h, но стандарт не определяет функцию. Возможно, ее так часто включают в библиотеки благодаря ее описанию в книге Язык программирования Си. Аналогичного эффекта можно добиться при помощи функции sprintf, которая определена в стандарте.
См. также
Примечания
- ↑C++ Resources Network — stdlib.h проверено 2009 12 15
- ↑C++ Resources Network — stdlib.h проверено 2009 12 15
- ↑ Согласно стандарту ISO/IEC 9899 C99, Глава 7.20 General utilities <stdlib.h> (point number 2) и Приложение B.19 General utilities <stdlib.h>. Определение может также содержаться в stddef.h, если кто-то захочет избежать подключения всей stdlib.
- ↑20 issues of porting C++ code on the 64-bit platform
Ссылки
-
(англ.) (англ.) (рус.) (рус.)
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое «Stdlib.h» в других словарях:
Stdlib.h — is the header of the general purpose standard library of C programming language which includes functions involving memory allocation, process control, conversions and others. It is compatible with C++ and is known as cstdlib in C++. The name… … Wikipedia
Stdlib.h — Saltar a navegación, búsqueda stdlib.h (std lib: standar library o biblioteca estándar) es el archivo de cabecera de la biblioteca estándar de propósito general del lenguaje de programación C. Contiene los prototipos de funciones de C para… … Wikipedia Español
stdlib.h — (std lib: standard library o biblioteca estándar) es el archivo de cabecera de la biblioteca estándar de propósito general del lenguaje de programación C. Contiene los prototipos de funciones de C para gestión de memoria dinámica, control de… … Wikipedia Español
stdlib.h — Стандартная библиотека языка программирования С assert.h complex.h ctype.h errno.h fenv.h float.h inttypes.h iso646.h limits.h locale.h math.h setjmp.h signal.h stdarg.h stdbool.h stddef.h stdint.h … Википедия
System (stdlib) — Saltar a navegación, búsqueda La función system() está incluída en la biblioteca cuya cabecera es <stdlib.h>. System permite ejecutar a su vez otras funciones como: cls , dir o pause . Por ejemplo, al escribir system ( pause ) se está… … Wikipedia Español
system (stdlib) — system() es una función del lenguaje de programación C incluida en su biblioteca estándar, dentro de la cabecera <stdlib.h>. Sirve para ejecutar subprocesos o comandos del sistema operativo. «system» permite ejecutar a su vez otras… … Wikipedia Español
Dao (programming language) — Infobox programming language name = Dao paradigm = Multi paradigm year = 2006 designer = Limin Fu latest release version = dao 1.0 preview latest release date = 2008 04 25 typing = statically typed or dynamically typed influenced by = C++, Lua,… … Wikipedia
Strtod — is a C language function that converts an ASCII string to a double precision value. It is utilized via the following sequence:double strtod(const char *restrict, char **restrict); [OpenGroup Technical Standards Documentation] Strtod is included… … Wikipedia
strtod — (сокр. от string to double, «строку в число двойной точности») функция языка Си, конвертирующая символ строки в число с плавающей запятой двойной точности. Определение функции имеет вид: double strtod ( const char * str, char ** endptr… … Википедия
Memory leak — A memory leak, in computer science (or leakage, in this context), occurs when a computer program consumes memory but is unable to release it back to the operating system. In object oriented programming, a memory leak happens when an object is… … Wikipedia
Cstdlib c что это
stdlib.h — заголовок (заголовочный файл) стандартной библиотеки общего назначения языка Си, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие. Заголовок вполне совместим с C++ и в C++ известен как cstdlib . Название «stdlib» расшифровывается как «standard library» (стандартная библиотека).
Члены stdlib.h можно разделить на следующие категории: преобразования типов, управление памятью, контроль процесса, сортировка и поиск, математика.
| Имя | Описание |
|---|---|
| Преобразование типов | |
| atof | строка в число двойной точности (НЕ float) |
| atoi | строка в целое число |
| atol | строка в длинное целое число |
| strtod | строка в число двойной точности (double) |
| strtol | строка в длинное целое число |
| strtoul | строка в беззнаковое длинное целое число (unsigned long int) |
| Генерация псевдослучайных последовательностей | |
| rand | генерирует псевдослучайное значение |
| srand | устанавливает начальное значение генератора псевдослучайных чисел |
| Выделение и освобождение памяти | |
| malloc calloc realloc |
выделяет память из кучи |
| free | освобождает память обратно в кучу |
| Контроль процесса выполнения программы | |
| abort | некорректное завершение выполнения |
| atexit | регистрирует обратный вызов функции для выхода из программы |
| exit | завершает выполнение программы |
| getenv | извлекает переменные окружения |
| system | выполняет внешнюю команду |
| Сортировка и поиск | |
| bsearch | двоичный поиск в массиве |
| qsort | сортировка массива |
| Математика | |
| abs labs |
абсолютная величина |
| div ldiv |
деление целых чисел |
| Многобайтовые операции/ широкие символы | |
| mblen | размер многобайтовых символов [1] |
| mbtowc, wctomb, mbstowcs, wcstombs | преобразование многобайтовых и широких символов [2] |
Члены-константы
Заголовочные файлы stdlib.h и stddef.h определяют макрос NULL, который порождает константный нуль-указатель, и представляет собой значение указателя, гарантирующего корректность указателя, не указывающего на действительный (корректный) адрес в памяти.
Варианты
NULL может быть опеределен как константное выражение, равное целому нулевому числу (нулю), длинному целому нулю, или нуль приводится к указателю типа void *: