<cstdlib> - C++ Builder

C++ Builder 参考手册<cstdlib>


  • 按功能排列的 <cstdlib> 成员
    • 类型转换函数
    • 多字节字符处理函数
    • 整数运算函数
    • 内存管理函数
    • 进程、系统相关的函数
    • _s 版本函数异常处理
    • 全局变量
    • 宏定义常数
  • 按字母顺序排列的 <cstdlib> 成员

一. 按功能排列的 <cstdlib> 成员

1.1. 类型转换函数

函数 说明
atof, _ttof, _wtof 字符串转 IEEE 双精度浮点数 (double)
_atold, _ttold, _wtold 字符串转 IEEE 长双精度浮点数 (long double)
atoi, _ttoi, _wtoi 字符串转整数 (int)
atol, _ttol, _wtol 字符串转 32 位长整数 (long)
atoll, _ttoll, _wtoll 字符串转 64 位长长整数 (long long)
_atoi64, _ttoi64, _wtoi64 字符串转 64 位长长整数 (long long)
strtof, _tcstof, wcstof 字符串转 IEEE 单精度浮点数 (float)
strtod, _tcstod, wcstod 字符串转 IEEE 双精度浮点数 (double)
strtold, wcstold,
_strtold, _tcstold, _wcstold
字符串转 IEEE 长浮点数 (long double)
strtol, _tcstol, wcstol 字符串转 32 位长整数 (long), 支持 2 ~ 36 进位制
strtoll, _tcstoll, wcstoll 字符串转 64 位长整数 (long long), 支持 2 ~ 36 进位制
strtoul, _tcstoul, wcstoul 字符串转 32 位无符号长整数 (unsigned long), 支持 2 ~ 36 进位制
strtoull, _tcstoull, wcstoull 字符串转无符号 64 位长整数 (unsigned long long), 支持 2 ~ 36 进位制
ecvt, _ecvt 把一个浮点数转为指定长度的无符号整数字符串,不足补零,
并且返回小数点位置和是否有负号
fcvt, _fcvt 把一个浮点数转为一个无符号整数字符串,保证小数点后面保留指定个数字,
不足补零,并且返回小数点位置和是否有负号
gcvt, _gcvt 把一个浮点数转成字符串,指定要保留几位有效数字,小数方式或科学计数法,
当这些位有效数字无法用小数方式表达时,会变成科学计数法
itoa, _itoa, _itot, _itow 整数 (int) 转字符串,支持 2 ~ 36 进位制
ltoa, _ltoa, _ltot, _ltow 32 位长整数 (long) 转字符串,支持 2 ~ 36 进位制
ultoa, _ultoa, _ultot, _ultow 32 位无符号长整数 (unsigned long) 转字符串,支持 2 ~ 36 进位制
_i64toa, _i64tot, _i64tow 64 位长整数 (long long) 转字符串,支持 2 ~ 36 进位制
_ui64toa, _ui64tot, _ui64tow 无符号 64 位长整数 (unsigned long long) 转字符串,支持 2 ~ 36 进位制

1.2. 多字节字符处理函数

函数 说明
mblen 多字节字符字节数
_mbstrlen 多字节字符串长度
wctomb 宽字符转多字节字符
wctomb_cp 根据指定的代码页进行宽字符转多字节字符
wcstombs 宽字符串转多字节字符串
mbtowc 多字节字符转宽字符
mbtowc_cp 根据指定的代码页进行多字节字符转宽字符
mbstowcs 宽字符串转多字节字符串

1.3. 整数运算函数

函数 说明
abs, labs, llabs 整数取绝对值
div, ldiv, lldiv 整数除法:求商和余数
div_t, ldiv_t, lldiv_t 商和余数结构体,是 div, ldiv, lldiv 函数的返回值类型
_rotl, _lrotl, _crotl 循环左移
_rotr, _lrotr, _crotr 循环右移
swab, _swab 交换奇数字节与偶数字节
rand, _lrand 生成一个 0 ~ RAND_MAX 或 0 ~ LRAND_MAX 之间的随机数
srand 使用给定的 seed number 初始化随机数
random 生成一个给定范围的随机数
randomize 使用当前的系统时间戳初始化随机数

1.4. 内存管理函数

函数 说明
malloc 分配内存
calloc 分配内存并且清零
realloc 调整分配内存大小,或者释放内存
free 释放内存

1.5. 进程、系统相关的函数

函数 说明
abort 结束进程,程序异常结束,并且提示错误信息
exit, _exit, _Exit 结束进程
atexit 注册程序结束时执行的函数
atexit_t 函数指针类型,是 atexit 函数的参数类型
perror, _tperror, _wperror 输出错误信息到 stderr
_seterrormode 设定指定类型的错误由 Windows 处理还是由调用进程处理,
相当于 Windows API 函数 SetErrorMode
system, _tsystem, _wsystem 执行一条控制台命令,如果当前应用程序不是控制台程序,也会自动开启一个控制台执行
getenv, _tgetenv, _wgetenv 获取一个操作系统环境变量的值
getenv_s, _tgetenv_s, wgetenv_s 获取一个操作系统环境变量的值
putenv, _putenv, _tputenv, _wputenv 修改一个操作系统环境变量的值,
只针对当前进程有效
putenv_s, _tputenv_s, _wputenv_s 修改一个操作系统环境变量的值,
只针对当前进程有效 【注1】
_searchenv, _tsearchenv, _wsearchenv 从操作系统环境变量指定的文件夹里面寻找文件
_searchstr, _tsearchstr, _wsearchstr 从路径列表指定的位置寻找文件
_fullpath, _tfullpath, _wfullpath 相对路径转绝对路径
_makepath, _tmakepath, _wmakepath 把驱动器名、文件夹名、文件名和后缀组合为完整的路径和文件名
_splitpath, _tsplitpath, _wsplitpath 把完整的路径和文件名分解为驱动器名、文件夹名、文件名和后缀

【注1】C++ Builder 没有这几个函数 (目前最新版本 C++ Builder 10.4)

1.6. _s 版本函数异常处理

函数 说明
abort_handler_s 使用 set_constraint_handler_s 注册捕获 _s 版本函数访问异常:调用 abort 结束进程
constraint_handler_t 使用 set_constraint_handler_s 注册捕获 _s 版本函数访问异常:自定义的异常处理
ignore_handler_s 使用 set_constraint_handler_s 注册捕获 _s 版本函数访问异常:忽略内存访问异常
set_constraint_handler_s 注册捕获 _s 版本函数访问异常

1.7. 全局变量

全局变量 说明
_argc 命令行参数的个数
_argv, _targv, _wargv 命令行参数
environ, _environ, _tenviron, _wenviron 操作系统环境变量
sys_errlist, _sys_errlist 错误信息字符串数组,用于 perror 显示 errno 的错误信息
sys_nerr, _sys_nerr _sys_errlist 里面错误信息的个数
_osmajor 操作系统主版本号
_osminor 操作系统次版本号
_osmode 操作系统模式
_osversion 操作系统版本,主版本:低位字节,次版本:高位字节
_cmdline_escapes 命令行转义,双反斜线是否认为是一个反斜线
_fileinfo 用于判断信息是否传递给 _spawn 创建的新的进程,已过时的变量
_fmode _open 等函数打开文件的方式,已过时的变量,
需要用 _get_fmode 和 _set_fmode 替代
__mb_cur_max 多字节字符的最大长度

1.8. 宏定义常数

宏定义常数 说明
MB_CUR_MAX 多字节字符的最大长度
RAND_MAX, LRAND_MAX rand 或 _lrand 函数生成随机数的最大值
EXIT_SUCCESS, EXIT_FAILURE exit 函数的参数
_MAX_PATH, _MAX_DRIVE,
_MAX_DIR, _MAX_FNAME, _MAX_EXT
路径和文件名的最大长度
DOS_MODE, OS2_MODE,
_WIN_MODE, _DOSX32_MODE,
_OS2_20_MODE
操作系统模式 _osmode 的值

二. 按字母顺序排序的 <cstdlib> 成员

函数 / 常数 / 变量 说明
abort 结束进程,程序异常结束,并且提示错误信息
abort_handler_s 使用 set_constraint_handler_s 注册捕获 _s 版本函数访问异常:调用 abort 结束进程
abs 整数取绝对值
_argc 命令行参数的个数
_argv 命令行参数
atexit 注册程序结束时执行的函数
atexit_t 函数指针类型,是 atexit 函数的参数类型
atof 字符串转 IEEE 双精度浮点数 (double)
atoi 字符串转整数 (int)
_atoi64 字符串转 64 位长长整数 (long long)
atol 字符串转 32 位长整数 (long)
_atold 字符串转 IEEE 长双精度浮点数 (long double)
atoll 字符串转 64 位长长整数 (long long)
calloc 分配内存并且清零
_cmdline_escapes 命令行转义,双反斜线是否认为是一个反斜线
constraint_handler_t 使用 set_constraint_handler_s 注册捕获 _s 版本函数访问异常:自定义的异常处理
_crotl 循环左移
_crotr 循环右移
div 整数除法:求商和余数
div_t 商和余数结构体,是 div 函数的返回值类型
DOS_MODE 操作系统模式 _osmode 的值
_DOSX32_MODE 操作系统模式 _osmode 的值
ecvt 把一个浮点数转为指定长度的无符号整数字符串,不足补零,
并且返回小数点位置和是否有负号
_ecvt 把一个浮点数转为指定长度的无符号整数字符串,不足补零,
并且返回小数点位置和是否有负号
environ 操作系统环境变量
_environ 操作系统环境变量
exit 结束进程,调用 atexit 添加的函数,调用全局变量的析构函数
_Exit 结束进程,不调用退出时需要执行的函数和全局变量的析构函数
_exit 结束进程,和 exit 相同,为了兼容一些开发工具保留的函数
EXIT_FAILURE exit 函数的参数
EXIT_SUCCESS exit 函数的参数
fcvt 把一个浮点数转为一个无符号整数字符串,保证小数点后面保留指定个数字,
不足补零,并且返回小数点位置和是否有负号
_fcvt 把一个浮点数转为一个无符号整数字符串,保证小数点后面保留指定个数字,
不足补零,并且返回小数点位置和是否有负号
_fileinfo 用于判断信息是否传递给 _spawn 创建的新的进程,已过时的变量
_fmode _open 等函数打开文件的方式,已过时的变量,
需要用 _get_fmode 和 _set_fmode 替代
free 释放内存
_fullpath 相对路径转绝对路径
gcvt 把一个浮点数转成字符串,指定要保留几位有效数字,小数方式或科学计数法,
当这些位有效数字无法用小数方式表达时,会变成科学计数法
_gcvt 把一个浮点数转成字符串,指定要保留几位有效数字,小数方式或科学计数法,
当这些位有效数字无法用小数方式表达时,会变成科学计数法
getenv 获取一个操作系统环境变量的值
getenv_s 获取一个操作系统环境变量的值
_i64toa 64 位长整数 (long long) 转字符串,支持 2 ~ 36 进位制
_i64tow 64 位长整数 (long long) 转字符串,支持 2 ~ 36 进位制
ignore_handler_s 使用 set_constraint_handler_s 注册捕获 _s 版本函数访问异常:忽略内存访问异常
itoa 整数 (int) 转字符串,支持 2 ~ 36 进位制
_itoa 整数 (int) 转字符串,支持 2 ~ 36 进位制
_itow 整数 (int) 转字符串,支持 2 ~ 36 进位制
labs 整数取绝对值
ldiv 整数除法:求商和余数
ldiv_t 商和余数结构体,是 ldiv 函数的返回值类型
llabs 整数取绝对值
lldiv 整数除法:求商和余数
lldiv_t 商和余数结构体,是 lldiv 函数的返回值类型
_lrand 生成一个 0 ~ LRAND_MAX 之间的随机数
LRAND_MAX _lrand 函数生成随机数的最大值
_lrotl 循环左移
_lrotr 循环右移
ltoa 32 位长整数 (long) 转字符串,支持 2 ~ 36 进位制
_ltoa 32 位长整数 (long) 转字符串,支持 2 ~ 36 进位制
_ltow 32 位长整数 (long) 转字符串,支持 2 ~ 36 进位制
_makepath 把驱动器名、文件夹名、文件名和后缀组合为完整的路径和文件名
malloc 分配内存
_MAX_DIR 路径的最大长度
_MAX_DRIVE 驱动器名的最大长度
_MAX_EXT 文件名后缀的最大长度
_MAX_FNAME 文件名的最大长度
_MAX_PATH 完整的路径和文件名的最大长度
MB_CUR_MAX 多字节字符的最大长度
__mb_cur_max 多字节字符的最大长度
mblen 多字节字符字节数
mbstowcs 宽字符串转多字节字符串
_mbstrlen 多字节字符串长度
mbtowc 多字节字符转宽字符
mbtowc_cp 根据指定的代码页进行多字节字符转宽字符
_OS2_20_MODE 操作系统模式 _osmode 的值
OS2_MODE 操作系统模式 _osmode 的值
_osmajor 操作系统主版本号
_osminor 操作系统次版本号
_osmode 操作系统模式
_osversion 操作系统版本,主版本:低位字节,次版本:高位字节
perror 输出错误信息到 stderr
putenv 修改一个操作系统环境变量的值,只是针对当前进程有效
_putenv 修改一个操作系统环境变量的值,只是针对当前进程有效
rand 生成一个 0 ~ RAND_MAX 之间的随机数
RAND_MAX rand 函数生成随机数的最大值
random 生成一个给定范围的随机数
randomize 使用当前的系统时间戳初始化随机数
realloc 调整分配内存大小,或者释放内存
_rotl 循环左移
_rotr 循环右移
_searchenv 从操作系统环境变量指定的文件夹里面寻找文件
_searchstr 从路径列表指定的位置寻找文件
set_constraint_handler_s 注册捕获 _s 版本函数访问异常
_seterrormode 设定指定类型的错误由 Windows 处理还是由调用进程处理,
相当于 Windows API 函数 SetErrorMode
_splitpath 把完整的路径和文件名分解为驱动器名、文件夹名、文件名和后缀
srand 使用给定的 seed number 初始化随机数
strtod 字符串转 IEEE 双精度浮点数 (double)
strtof 字符串转 IEEE 单精度浮点数 (float)
strtol 字符串转 32 位长整数 (long), 支持 2 ~ 36 进位制
strtold 字符串转 IEEE 长浮点数 (long double)
_strtold 字符串转 IEEE 长浮点数 (long double)
strtoll 字符串转 64 位长整数 (long long), 支持 2 ~ 36 进位制
strtoul 字符串转 32 位无符号长整数 (unsigned long), 支持 2 ~ 36 进位制
strtoull 字符串转无符号 64 位长整数 (unsigned long long), 支持 2 ~ 36 进位制
swab 交换奇数字节与偶数字节
_swab 交换奇数字节与偶数字节
sys_errlist 错误信息字符串数组,用于 perror 显示 errno 的错误信息
_sys_errlist 错误信息字符串数组,用于 perror 显示 errno 的错误信息
sys_nerr _sys_errlist 里面错误信息的个数
_sys_nerr _sys_errlist 里面错误信息的个数
system 执行一条控制台命令,如果当前应用程序不是控制台程序,也会自动开启一个控制台执行
_ui64toa 无符号 64 位长整数 (unsigned long long) 转字符串,支持 2 ~ 36 进位制
_ui64tow 无符号 64 位长整数 (unsigned long long) 转字符串,支持 2 ~ 36 进位制
ultoa 32 位无符号长整数 (unsigned long) 转字符串,支持 2 ~ 36 进位制
_ultoa 32 位无符号长整数 (unsigned long) 转字符串,支持 2 ~ 36 进位制
_ultow 32 位无符号长整数 (unsigned long) 转字符串,支持 2 ~ 36 进位制
_wargv 命令行参数
wcstod 字符串转 IEEE 双精度浮点数 (double)
wcstof 字符串转 IEEE 单精度浮点数 (float)
wcstol 字符串转 32 位长整数 (long), 支持 2 ~ 36 进位制
wcstold 字符串转 IEEE 长浮点数 (long double)
_wcstold 字符串转 IEEE 长浮点数 (long double)
wcstoll 字符串转 64 位长整数 (long long), 支持 2 ~ 36 进位制
wcstombs 宽字符串转多字节字符串
wcstoul 字符串转 32 位无符号长整数 (unsigned long), 支持 2 ~ 36 进位制
wcstoull 字符串转无符号 64 位长整数 (unsigned long long), 支持 2 ~ 36 进位制
wctomb 宽字符转多字节字符
wctomb_cp 根据指定的代码页进行宽字符转多字节字符
_wenviron 操作系统环境变量
_wfullpath 相对路径转绝对路径
_wgetenv 获取一个操作系统环境变量的值
wgetenv_s 获取一个操作系统环境变量的值
_WIN_MODE 操作系统模式 _osmode 的值
_wmakepath 把驱动器名、文件夹名、文件名和后缀组合为完整的路径和文件名
_wperror 输出错误信息到 stderr
_wputenv 修改一个操作系统环境变量的值,只是针对当前进程有效
_wsearchenv 从操作系统环境变量指定的文件夹里面寻找文件
_wsearchstr 从路径列表指定的位置寻找文件
_wsplitpath 把完整的路径和文件名分解为驱动器名、文件夹名、文件名和后缀
_wsystem 执行一条控制台命令,如果当前应用程序不是控制台程序,也会自动开启一个控制台执行
_wtof 字符串转 IEEE 双精度浮点数 (double)
_wtoi 字符串转整数 (int)
_wtoi64 字符串转 64 位长长整数 (long long)
_wtol 字符串转 32 位长整数 (long)
_wtold 字符串转 IEEE 长双精度浮点数 (long double)
_wtoll 字符串转 64 位长长整数 (long long)

相关:


C++ Builder 参考手册<cstdlib>