Стандартная библиотека
языка программирования С
  • assert.h
  • complex.h (C99)
  • ctype.h
  • errno.h
  • fenv.h (C99)
  • float.h
  • inttypes.h (C99)
  • iso646.h
  • limits.h
  • locale.h
  • math.h
  • setjmp.h
  • signal.h
  • stdalign.h (C11)
  • stdarg.h
  • stdatomic.h (C11)
  • stdbool.h (C99)
  • stddef.h
  • stdint.h (C99)
  • stdio.h
  • stdlib.h
  • stdnoreturn.h (C11)
  • string.h
  • tgmath.h
  • threads.h (C11)
  • time.h
  • uchar.h (C11)
  • wchar.h
  • wctype.h

stdlib.h — заголовочный файл стандартной библиотеки языка Си, который содержит в себе функции, занимающиеся выделением памяти, контролем процесса выполнения программы, преобразованием типов и другие. Заголовок вполне совместим с C++ и известен в нём как cstdlib . Название «stdlib» расшифровывается как «standard library» (стандартная библиотека).

Содержание

Функции [ править | править код ]

Имя Описание Соответствие стандартам
Преобразование типов C89 C99
atof строка в число двойной точности (double; НЕ float) Да
atoi строка в целое число (integer) Да
atol строка в длинное целое число (long integer) Да
atoll строка в длинное целое число (long long integer) Да
strtod строка в число двойной точности (double) Да
strtof строка в число одиночной точности (float) Да
strtol строка в длинное целое число (long integer) Да
strtold строка в длинное двойной точности (long double) Да
strtoll строка в длинное целое число (long long integer) Да
strtoul строка в беззнаковое длинное целое число (unsigned long integer) Да
strtoull строка в беззнаковое длинное целое число (unsigned long long integer) Да
Генерация псевдослучайных последовательностей
rand генерирует псевдослучайное значение Да
srand устанавливает начальное значение генератора псевдослучайных чисел Да
Выделение и освобождение памяти
malloc
calloc
realloc
выделяет память из кучи Да
free освобождает память обратно в кучу Да
Контроль процесса выполнения программы
abort некорректное завершение выполнения Да
atexit регистрирует обратный вызов функции, которую нужно будет выполнить перед завершением работы программы Да
exit завершает выполнение программы Да
getenv извлекает переменные окружения Да
system выполняет внешнюю команду Да
Сортировка и поиск
bsearch двоичный поиск в массиве Да
qsort сортировка массива Да
Математика
abs , labs абсолютная величина целого числа Да
llabs , imaxabs Да
div
ldiv
деление целых чисел Да
Многобайтовые операции/ широкие символы
mblen размер многобайтовых символов [1] Да
mbtowc, wctomb, mbstowcs, wcstombs преобразование многобайтовых и широких символов [1] Да

NULL [ править | править код ]

Заголовочные файлы stdlib.h и stddef.h определяют макрос NULL, являющийся константным нуль-указателем, который гарантированно указывает на некорректный адрес памяти.

Варианты [ править | править код ]

NULL может быть определен как константное выражение, равное целому нулевому числу (нулю), длинному целому нулю, или нуль приводится к указателю типа void *:

Несмотря на то, что константа нуль-указателя всегда представляется в Си символьной константой 0 или 0, приведённым к void-указателю, реальное битовое представление подобного указателя зависит от системы и может содержать однобитовые значения.

Типы [ править | править код ]

size_t [ править | править код ]

Заголовочные файлы stdlib.h и stddef.h определяют тип данных, называемый size_t [2] , который используется для представления размера объекта. Библиотечные функции, использующие размеры, принимают на вход значения именно этого типа. Значения типа size_t возвращает оператор sizeof .

Настоящий тип size_t платформо-независим; распространенной ошибкой является подразумевать под size_t беззнаковое целое ( unsigned int ), что может привести к ошибкам программирования, [3] причём в первую очередь это касается 64-битных архитектур.

div_t, ldiv_t [ править | править код ]

Также определены два менее широко используемых типа данных — div_t и ldiv_t . Они являются возвращаемыми типами функций div и ldiv . Стандарт определяет их следующим образом:

Включает заголовок и добавляет связанные имена std в пространство имен. Includes the C Standard library header and adds the associated names to the std namespace. Включение этого заголовка гарантирует, что имена, объявленные с помощью внешней компоновки в заголовке стандартной библиотеки C std , объявляются в пространстве имен. Including this header ensures that the names declared using external linkage in the C standard library header are declared in the std namespace.

не включает тип wchar_t. doesn’t include the type wchar_t.

Требования Requirements

Заголовок: Header:

Пространство имен: std Namespace: std

Пространство имен и макросы Namespace and Macros

Демонстрации только функции Exposition only functions

Функции запуска и завершения Start and termination functions

Функция Function Описание Description
_Exit _Exit Завершает программу без использования деструкторов или зарегистрированных функций. Terminates program without using destructors or registered functions.
abort abort Завершает программу без использования деструкторов. Terminates program without using destructors.
atexit atexit Регистрирует функцию для завершения программы. Registers function for program termination.
exit exit Уничтожает объекты с потоком и статическим хранилищем, а затем возвращает управление. Destroys objects with thread and static storage, then returns control.
at_quick_exit at_quick_exit Регистрирует функцию без аргументов для завершения программы. Registers function without arguments for program termination.
quick_exit quick_exit Регистрирует функцию с сохраненными объектами для завершения программы. Registers function with preserved objects for program termination.
getenv getenv См. Справочник по стандартной библиотеке C. See C standard library reference.
system system См. Справочник по стандартной библиотеке C. See C standard library reference.

_Exit _Exit

Примечания Remarks

Программа завершается без выполнения деструкторов для объектов автоматической, потоковой или статической длительности хранения и без вызова функций, переданных в atexit() . The program is terminated without executing destructors for objects of automatic, thread, or static storage duration and without calling functions passed to atexit() . Функция _Exit является сигнальной. The function _Exit is signal-safe.

рвал abort

Примечания Remarks

Программа завершается без выполнения деструкторов для объектов автоматической, потоковой или статической длительности хранения и без вызова функций, переданных в atexit() . The program is terminated without executing destructors for objects of automatic, thread, or static storage duration and without calling functions passed to atexit() . Функция abort является сигнальной. The function abort is signal-safe.

at_quick_exit at_quick_exit

Возвращаемое значение Return Value

Нуль, если регистрация завершается успешно, а не равна нулю в случае сбоя. Zero if the registration succeeds, non-zero if it fails.

Примечания Remarks

Функции регистрируют функцию Func, которая вызывается без аргументов при quick_exit вызове метода. at_quick_exit() The at_quick_exit() functions register a function func, which is called without arguments when quick_exit is called. Вызов at_quick_exit() этого метода не происходит до тех пор, пока quick_exit не будут выполнены все вызовы. A call to at_quick_exit() that doesn’t happen before all calls to quick_exit may not succeed. at_quick_exit() Функции не представляют состязание за данные. The at_quick_exit() functions don’t introduce a data race. Порядок регистрации может быть неопределенным, если at_quick_exit был вызван из более чем одного потока. The order of registration may be indeterminate if at_quick_exit was called from more than one thread. Поскольку at_quick_exit регистрации отличаются atexit от регистраций, приложениям может потребоваться вызывать обе функции регистрации, используя один и тот же аргумент. Since at_quick_exit registrations are distinct from the atexit registrations, applications may need to call both registration functions using the same argument. КОМПИЛЯТОРОМ MSVC поддерживает регистрацию по крайней мере 32 функций. MSVC supports the registration of at least 32 functions.

atexit atexit

Примечания Remarks

Функции регистрируют функцию, на которую указывает функция Func для вызова без аргументов при нормальном завершении программы. atexit() The atexit() functions register the function pointed to by func to be called without arguments at normal program termination. Вызов atexit() , который не происходит перед exit() вызовом метода, может быть невозможен. A call to atexit() that doesn’t happen before a call to exit() may not succeed. atexit() Функции не представляют состязание за данные. The atexit() functions don’t introduce a data race.

Возвращаемое значение Return Value

Возвращает нуль, если регистрация завершается успешно, ненулевое значение в случае сбоя. Returns zero if the registration succeeds, nonzero if it fails.

выполняет exit

Примечания Remarks

Сначала уничтожаются объекты с длительностью хранилища потоков и связанные с текущим потоком. First, objects with thread storage duration and associated with the current thread are destroyed.

Затем уничтожаются объекты со статической длительностью хранилища, а функции, регистрируемые atexit вызовом, вызываются. Next, objects with static storage duration are destroyed and functions registered by calling atexit are called. Автоматические объекты не уничтожаются exit() при вызове метода. Automatic objects aren’t destroyed when exit() is called. Если элемент управления оставляет зарегистрированную функцию с exit именем, поскольку она не предоставляет обработчик для вызываемого исключения std::terminate() , вызывается. If control leaves a registered function called by exit because the function doesn’t provide a handler for a thrown exception, std::terminate() is called. Функция вызывается один раз для каждой зарегистрированной. A function is called once for every time it’s registered. Объекты с автоматическим сроком хранения уничтожаются в программе, main функция которой не содержит автоматических объектов и выполняет exit() вызов. Objects with automatic storage duration are all destroyed in a program whose main function contains no automatic objects and executes the call to exit() . Элемент управления можно передать непосредственно в такую main функцию, вызывая исключение, которое main перехватывается. Control can be transferred directly to such a main function by throwing an exception that’s caught in main .

Затем все открытые потоки c (как исправленные сигнатуры функций, объявленные в ) с незаписанными буферизованными данными сбрасываются, все открытые c-потоки закрываются, а все файлы, tmpfile() созданные при вызове, удаляются. Next, all open C streams (as mediated by the function signatures declared in ) with unwritten buffered data are flushed, all open C streams are closed, and all files created by calling tmpfile() are removed.

Наконец, управление возвращается в среду узла. Finally, control is returned to the host environment. Когда Status имеет значение 0 или EXIT_SUCCESS, возвращается определенная реализацией форма состояния "успешно завершено". When status is zero or EXIT_SUCCESS, an implementation-defined form of the status successful termination is returned. КОМПИЛЯТОРОМ MSVC возвращает нулевое значение. MSVC returns a value of zero. Если status имеет состояние EXIT_FAILURE, компилятором MSVC возвращает значение 3. If status is EXIT_FAILURE, MSVC returns a value of 3. В противном случае КОМПИЛЯТОРОМ MSVC возвращает значение параметра Status . Otherwise, MSVC returns the status parameter value.

getenv getenv

quick_exit quick_exit

Примечания Remarks

Как правило, функции, регистрируемые at_quick_exit с помощью вызовов, вызываются в порядке их регистрации в обратную. Generally, functions registered by calls to at_quick_exit are called in the reverse order of their registration. Этот порядок не применяется к функциям, зарегистрированным после того, как уже вызваны другие зарегистрированные функции. This order doesn’t apply to functions registered after other registered functions have already been called. При quick_exit вызове объекты не уничтожаются. No objects are destroyed when quick_exit is called. Если элемент управления оставляет зарегистрированную функцию с quick_exit именем, поскольку она не предоставляет обработчик для вызываемого исключения std::terminate() , вызывается. If control leaves a registered function called by quick_exit because the function doesn’t provide a handler for a thrown exception, std::terminate() is called. Функция, зарегистрированная at_quick_exit с помощью, вызывается потоком, который quick_exit вызывает метод, который может отличаться от потока, который его зарегистрировал. A function registered via at_quick_exit is invoked by the thread that calls quick_exit , which can be a different thread than the one that registered it. Это означает, что зарегистрированные функции не должны полагаться на удостоверение объектов с длительностью хранения потока. That means registered functions shouldn’t rely on the identity of objects that have thread storage duration. После вызова зарегистрированных функций quick_exit вызывает. _Exit(status) After calling registered functions, quick_exit calls _Exit(status) . Стандартные буферы файлов не сбрасываются. The standard file buffers aren’t flushed. Функция quick_exit является сигнальной, если функции, зарегистрированные в at_quick_exit , имеют значение. The function quick_exit is signal-safe when the functions registered with at_quick_exit are.

системой system

Функции выделения памяти Memory allocation functions

Примечания Remarks

Эти функции имеют семантику, указанную в стандартной библиотеке C. These functions have the semantics specified in the C standard library. Компилятором MSVC не поддерживает aligned_alloc функцию. MSVC doesn’t support the aligned_alloc function. C11 задается aligned_alloc() способом, который несовместим с free() реализацией Майкрософт, а именно, которая free() должна иметь возможность обрабатывать строго согласованные выделения. C11 specified aligned_alloc() in a way that’s incompatible with the Microsoft implementation of free() , namely, that free() must be able to handle highly aligned allocations.

Преобразования числовых строк Numeric string conversions

Примечания Remarks

Эти функции имеют семантику, указанную в стандартной библиотеке C. These functions have the semantics specified in the C standard library.

Функции преобразования многобайтовых строк и символов в расширенном виде Multibyte / wide string and character conversion functions

Примечания Remarks

Эти функции имеют семантику, указанную в стандартной библиотеке C. These functions have the semantics specified in the C standard library.

Функции алгоритма Algorithm functions

Примечания Remarks

Эти функции имеют семантику, указанную в стандартной библиотеке C. These functions have the semantics specified in the C standard library.

Функции создания случайных чисел с низким качеством Low-quality random number generation functions

Примечания Remarks

Эти функции имеют семантику, указанную в стандартной библиотеке C. These functions have the semantics specified in the C standard library.

Абсолютные значения Absolute values

Примечания Remarks

Эти функции имеют семантику, указанную в стандартной библиотеке C. These functions have the semantics specified in the C standard library.

Деление целых чисел Integer division

Примечания Remarks

Эти функции имеют семантику, указанную в стандартной библиотеке C. These functions have the semantics specified in the C standard library.

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 . 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 . 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