Standard library header <stdlib.h>
此头文件是 程序支持工具库 的组成部分,特别提供了程序终止、 内存管理 、 字符串转换 、 随机数生成 等功能。该头文件还包含部分 算法 实现。
函数 |
|
|
导致程序异常终止(不进行清理)
(函数) |
|
|
导致程序正常终止并进行清理
(函数) |
|
|
(C11)
|
导致程序正常终止但不完全清理
(函数) |
|
(C99)
|
导致程序正常终止但不进行清理
(函数) |
|
注册在调用
exit()
时要执行的函数
(函数) |
|
|
(C11)
|
注册在调用
quick_exit
时要执行的函数
(函数) |
|
指示程序执行状态
(宏常量) |
|
|
本部分内容尚不完整
原因:需从7.24 通用工具 <stdlib.h> 章节补充更多内容 |
概要
|
本部分内容尚不完整
原因:需补充 B.23 通用工具库 <stdlib.h> 相关内容 |
#define __STDC_VERSION_STDLIB_H__ 202311L // 待办:类型和宏定义 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)
仅当实现定义了 __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);
` 标签内)已按规则保留原文 - 仅对函数功能进行补充说明(非网页内容翻译) - 函数命名及参数类型严格遵循C++规范未作翻译
仅当实现定义了
__STDC_IEC_60559_TYPES__
且用户代码在包含
<stdlib.h>
之前额外定义了
__STDC_WANT_IEC_60559_TYPES_EXT__
时:
#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__
且用户代码在包含
stdio.h
之前额外定义了
__STDC_WANT_LIB_EXT1__
时:
#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