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) |
相关:
- <cstdio>
- System::Sysutils
C++ Builder 参考手册 ➙ <cstdlib>