Spec-Zone.ru › C

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

Этот заголовочный файл является частью библиотеки вспомогательных средств для программ; в частности, он предоставляет функции для завершения программы, управления памятью, преобразования строк и генерации случайных чисел. Заголовочный файл также предоставляет некоторые алгоритмы.

Функции

abort
вызывает аварийное завершение программы (без очистки ресурсов)
(функция)
exit
вызывает нормальное завершение программы с очисткой ресурсов
(функция)
quick_exit
(C11)
вызывает нормальное завершение программы без полной очистки ресурсов
(функция)
_Exit
(C99)
вызывает нормальное завершение программы без очистки ресурсов
(функция)
atexit
регистрирует функцию для вызова при вызове exit()
(функция)
at_quick_exit
(C11)
регистрирует функцию для вызова при вызове quick_exit
(функция)
EXIT_SUCCESSEXIT_FAILURE
обозначает статус выполнения программы
(макроконстанта)

Обзор

#define __STDC_VERSION_STDLIB_H__ 202311L

// TODO: types and macros

void call_once(once_flag* flag, void (*func)(void));
double atof(const char* nptr);
int atoi(const char* nptr);
long int atol(const char* nptr);
long long int atoll(const char* nptr);
int strfromd(char* restrict s, size_t n, const char* restrict format, double fp);
int strfromf(char* restrict s, size_t n, const char* restrict format, float fp);
int strfroml(char* restrict s, size_t n, const char* restrict format, long double fp);
double strtod(const char* restrict nptr, char** restrict endptr);
float strtof(const char* restrict nptr, char** restrict endptr);
long double strtold(const char* restrict nptr, char** restrict endptr);
long int strtol(const char* restrict nptr, char** restrict endptr, int base);
long long int strtoll(const char* restrict nptr, char** restrict endptr, int base);
unsigned long int strtoul(const char* restrict nptr, char** restrict endptr, int base);
unsigned long long int strtoull(const char* restrict nptr,
                                char** restrict endptr, int base);
int rand(void);
void srand(unsigned int seed);
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);
[[noreturn]] void abort(void);
int atexit(void (*func)(void));
int at_quick_exit(void (*func)(void));
[[noreturn]] void exit(int status);
[[noreturn]] void _Exit(int status);
char* getenv(const char* name);
[[noreturn]] void quick_exit(int status);
int system(const char* string);
QVoid* bsearch(const void* key, QVoid* base, size_t nmemb, size_t size,
               int (*compar)(const void* , const void* ));
void qsort(void* base, size_t nmemb, size_t size,
           int (*compar)(const void* , const void* ));
int abs(int j);
long int labs(long int j);
long long int llabs(long long int j);
div_t div(int numer, int denom);
ldiv_t ldiv(long int numer, long int denom);
lldiv_t lldiv(long long int numer, long long int denom);
int mblen(const char* s, size_t n);
int mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n);
int wctomb(char* s, wchar_t wc);
size_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n);
size_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n);
size_t memalignment(const void* p);

Только если реализация определяет __STDC_IEC_60559_DFP__:

int strfromd32(char* restrict s, size_t n, const char* restrict format, _Decimal32 fp);
int strfromd64(char* restrict s, size_t n, const char* restrict format, _Decimal64 fp);
int strfromd128(char* restrict s, size_t n, const char* restrict format, _Decimal128 fp);
_Decimal32 strtod32(const char* restrict nptr, char** restrict endptr);
_Decimal64 strtod64(const char* restrict nptr, char** restrict endptr);
_Decimal128 strtod128(const char* restrict nptr, char** restrict endptr);

Только если реализация определяет __STDC_IEC_60559_TYPES__, а пользовательский код дополнительно определяет __STDC_WANT_IEC_60559_TYPES_EXT__ до любого включения <stdlib.h>:

#ifdef __STDC_WANT_IEC_60559_TYPES_EXT__
int strfromfN(char* restrict s, size_t n, const char* restrict format, _FloatN fp);
int strfromfNx(char* restrict s, size_t n, const char* restrict format, _FloatNx fp);
int strfromdN(char* restrict s, size_t n, const char* restrict format, _DecimalN fp);
int strfromdNx(char* restrict s, size_t n, const char* restrict format, _DecimalNx fp);
_FloatN strtofN(const char* restrict nptr, char** restrict endptr);
_FloatNx strtofNx(const char* restrict nptr, char** restrict endptr);
_DecimalN strtodN(const char* restrict nptr, char** restrict endptr);
_DecimalNx strtodNx(const char* restrict nptr, char** restrict endptr);
int strfromencfN(char* restrict s, size_t n, const char* restrict format,
                 const unsigned char encptr[restrict static N/8]);
int strfromencdecdN(char* restrict s, size_t n, const char* restrict format,
                    const unsigned char encptr[restrict static N/8]);
int strfromencbindN(char* restrict s, size_t n, const char* restrict format,
                    const unsigned char encptr[restrict static N/8]);
void strtoencfN(unsigned char encptr[restrict static N/8],
                const char* restrict nptr, char** restrict endptr);
void strtoencdecdN(unsigned char encptr[restrict static N/8],
                   const char* restrict nptr, char** restrict endptr);
void strtoencbindN(unsigned char encptr[restrict static N/8],
                   const char* restrict nptr, char** restrict endptr);
#endif

Только если реализация определяет __STDC_LIB_EXT1__, а пользовательский код дополнительно определяет __STDC_WANT_LIB_EXT1__ до любого включения <stdlib.h>:

#if defined(__STDC_WANT_LIB_EXT1__)
constraint_handler_t set_constraint_handler_s(constraint_handler_t handler);
void abort_handler_s(const char* restrict msg, void* restrict ptr, errno_t error);
void ignore_handler_s(const char* restrict msg, void* restrict ptr, errno_t error);
errno_t getenv_s(size_t* restrict len, char* restrict value, rsize_t maxsize,
                 const char* restrict name);
QVoid* bsearch_s(const void* key, QVoid* base, rsize_t nmemb, rsize_t size,
                 int (*compar)(const void* k, const void* y, void* context),
                               void* context);
errno_t qsort_s(void* base, rsize_t nmemb, rsize_t size,
                int (*compar)(const void* x, const void* y, void* context),
                              void* context);
errno_t wctomb_s(int* restrict status, char* restrict s, rsize_t smax,
                 wchar_t wc);
errno_t mbstowcs_s(size_t* restrict retval, wchar_t* restrict dst, rsize_t dstmax,
                   const char* restrict src, rsize_t len);
errno_t wcstombs_s(size_t* restrict retval, char* restrict dst, rsize_t dstmax,
                   const wchar_t* restrict src, rsize_t len);
#endif

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/header/stdlib

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API