CRT 函数的安全增强版本

可提供更安全版本的运行时库例程。 有关 CRT 中的安全增强功能的详细信息,请参阅 CRT 中的安全功能

安全函数

CRT 函数 安全性增强的函数 使用
_access_waccess _access_s_waccess_s 确定文件访问权限
_alloca _malloca 在堆栈上分配内存
asctime_wasctime asctime_s_wasctime_s struct tm 类型到字符串的转换时间
bsearch bsearch_s 执行排序数组的二进制搜索
_cgets_cgetws _cgets_s_cgetws_s 从控制台获取一个字符串
_chsize _chsize_s 更改文件的大小
clearerr clearerr_s 重置流的错误指示器
_control87_controlfp__control87_2 _controlfp_s 获取和设置浮点控制字
_cprintf_cprintf_l_cwprintf_cwprintf_l _cprintf_s_cprintf_s_l_cwprintf_s_cwprintf_s_l 格式化并打印到控制台
_cscanf_cscanf_l_cwscanf_cwscanf_l _cscanf_s_cscanf_s_l_cwscanf_s_cwscanf_s_l 从控制台读取格式化的数据
ctime_ctime32_ctime64_wctime_wctime32_wctime64 _ctime_s_ctime32_s_ctime64_s_wctime_s_wctime32_s_wctime64_s time_t__time32_t__time64_t 类型到字符串的转换时间
_ecvt _ecvt_s double 数字转换为字符串
_fcvt _fcvt_s 将浮点数转换为字符串
fopen_wfopen fopen_s_wfopen_s 打开文件
fprintf_fprintf_lfwprintf_fwprintf_l fprintf_s_fprintf_s_lfwprintf_s_fwprintf_s_l 将格式化数据输出到流
fread fread_s 从文件中读取
_fread_nolock _fread_nolock_s 从文件中读取,同时无需使用多线程写入锁定
freopen_wfreopen freopen_s_wfreopen_s 重新打开文件
fscanf_fscanf_lfwscanf_fwscanf_l fscanf_s_fscanf_s_lfwscanf_s_fwscanf_s_l 从流中读取带格式的数据
_ftime_ftime32_ftime64 _ftime_s_ftime32_s_ftime64_s 获取当前时间
_gcvt _gcvt_s 将浮点值转换为字符串,并将其存储在缓冲区中
getenv_wgetenv getenv_s_wgetenv_s 从当前环境中获取值。
getsgetws gets_s_getws_s stdin 流中获取行
gmtime_gmtime32_gmtime64 _gmtime32_s_gmtime64_s 将时间从类型 time_t 转换为 struct tm 或从类型 __time64_t 转换为 struct tm
itoa_itoaltoa_ltoaultoa_ultoa_i64toa_ui64toa_itow_ltow_ultow_i64tow_ui64tow _itoa_s_ltoa_s_ultoa_s_i64toa_s_ui64toa_s_itow_s_ltow_s_ultow_s_i64tow_s_ui64tow_s 将整型类型转换为字符串
_lfind _lfind_s 执行指定键的线性搜索
localtime_localtime32_localtime64 localtime_s_localtime32_s_localtime64_s 使用本地更正将时间从类型 time_t 转换为 struct tm 或从类型 __time64_t 转换为 struct tm
_lsearch _lsearch_s 执行值的线性搜索;如果未找到,则添加到列表的末尾
_makepath_wmakepath _makepath_s_wmakepath_s 从组件创建路径名
_mbccpy_mbccpy_l _mbccpy_s_mbccpy_s_l 将多字节字符从一个字符串复制到另一个字符串
_mbsnbcat_mbsnbcat_l _mbsnbcat_s_mbsnbcat_s_l 最多将一个多字节字符字符串的第一个 n 字节追加到另一个字符串
_mbsnbcpy_mbsnbcpy_l _mbsnbcpy_s_mbsnbcpy_s_l 将字符串的 n 字节复制到目标字符串
_mbsnbset_mbsnbset_l _mbsnbset_s_mbsnbset_s_l 将字符串的第一个 n 字节设置为指定字符
mbsrtowcs mbsrtowcs_s 将多字节字符字符串转换为对应的宽字符字符串
mbstowcs_mbstowcs_l mbstowcs_s_mbstowcs_s_l 将多字节字符序列转换为对应的宽字符序列
memcpywmemcpy memcpy_swmemcpy_s 在缓冲区之间进行字符复制操作
memmovewmemmove memmove_swmemmove_s 从一个缓冲区移动到另一个缓冲区
_mktemp_wmktemp _mktemp_s_wmktemp_s 创建唯一文件名
printf_printf_lwprintf_wprintf_l printf_s_printf_s_lwprintf_s_wprintf_s_l 将格式化输出打印至标准输出流
_putenv_wputenv _putenv_s_wputenv_s 创建,修改或移除环境变量
qsort qsort_s 执行快速排序
rand rand_s 生成伪随机数
scanf_scanf_lwscanf_wscanf_l scanf_s_scanf_s_lwscanf_s_wscanf_s_l 从标准输入流中读取格式化数据
_searchenv_wsearchenv _searchenv_s_wsearchenv_s 使用环境路径搜索文件
snprintf_snprintf_snprintf_l_snwprintf_snwprintf_l _snprintf_s_snprintf_s_l_snwprintf_s_snwprintf_s_l 将设置格式的数据写入字符串
_snscanf_snscanf_l_snwscanf_snwscanf_l _snscanf_s_snscanf_s_l_snwscanf_s_snwscanf_s_l 从字符串中读取指定长度的格式化数据。
_sopen_wsopen _sopen_s_wsopen_s 打开文件以供共享
_splitpath_wsplitpath _splitpath_s_wsplitpath_s 将路径名称分解成组件
sprintf_sprintf_lswprintf_swprintf_l__swprintf_l sprintf_s_sprintf_s_lswprintf_s_swprintf_s_l 将设置格式的数据写入字符串
sscanf_sscanf_lswscanf_swscanf_l sscanf_s_sscanf_s_lswscanf_s_swscanf_s_l 从字符串中读取格式化数据
strcatwcscat_mbscat strcat_swcscat_s_mbscat_s 追加字符串
strcpywcscpy_mbscpy strcpy_swcscpy_s_mbscpy_s 复制字符串
_strdate_wstrdate _strdate_s_wstrdate_s 以字符串形式返回当前系统日期
strerror_strerror_wcserror__wcserror strerror_s_strerror_s_wcserror_s__wcserror_s 获取系统错误信息(strerror_wcserror)或打印用户提供的错误消息(_strerror__wcserror
_strlwr_wcslwr_mbslwr_strlwr_l_wcslwr_l_mbslwr_l _strlwr_s_strlwr_s_l_mbslwr_s_mbslwr_s_l_wcslwr_s_wcslwr_s_l 将字符串转换为小写字母
strncat_strncat_lwcsncat_wcsncat_l_mbsncat_mbsncat_l strncat_s_strncat_s_lwcsncat_s_wcsncat_s_l_mbsncat_s_mbsncat_s_l 向字符串追加字符
strncpy_strncpy_lwcsncpy_wcsncpy_l_mbsncpy_mbsncpy_l strncpy_s_strncpy_s_lwcsncpy_s_wcsncpy_s_l_mbsncpy_s_mbsncpy_s_l 将一个字符串的字符复制到另一个字符串
_strnset_strnset_l_wcsnset_wcsnset_l_mbsnset_mbsnset_l _strnset_s_strnset_s_l_wcsnset_s_wcsnset_s_l_mbsnset_s_mbsnset_s_l 将字符串的第一个 n 字符设置为指定字符
_strset_strset_l_wcsset_wcsset_l_mbsset_mbsset_l _strset_s_strset_s_l_wcsset_s_wcsset_s_l_mbsset_s_mbsset_s_l 将字符串的所有字符都设置为指定字符
_strtime_wstrtime _strtime_s_wstrtime_s 以字符串形式返回当前系统时间
strtok_strtok_lwcstok_wcstok_l_mbstok_mbstok_l strtok_s_strtok_s_lwcstok_s_wcstok_s_l_mbstok_s_mbstok_s_l 通过使用当前区域设置或通过的区域设置,查找在字符串中的下一个标记
_strupr_strupr_l_mbsupr_mbsupr_l_wcsupr_l_wcsupr _strupr_s_strupr_s_l_mbsupr_s_mbsupr_s_l_wcsupr_s_wcsupr_s_l 将字符串转换为大写字母
tmpfile tmpfile_s 创建临时文件
_tempnam_wtempnamtmpnam_wtmpnam tmpnam_s_wtmpnam_s 生成可用于创建临时文件的名称
_umask _umask_s 设置默认的文件权限掩码
_vcprintf_vcprintf_l_vcwprintf_vcwprintf_l _vcprintf_s_vcprintf_s_l_vcwprintf_s_vcwprintf_s_l 使用指向参数列表的指针编写格式化输出到控制台
vfprintf_vfprintf_lvfwprintf_vfwprintf_l vfprintf_s_vfprintf_s_lvfwprintf_s_vfwprintf_s_l 编写使用指针参数列表的格式化输出
vfscanfvfwscanf vfscanf_svfwscanf_s 从流中读取带格式的数据
vprintf_vprintf_lvwprintf_vwprintf_l vprintf_s_vprintf_s_lvwprintf_s_vwprintf_s_l 编写使用指针参数列表的格式化输出
vscanfvwscanf vscanf_svwscanf_s 从标准输入流中读取格式化数据
vsnprintf_vsnprintf_vsnprintf_l_vsnwprintf_vsnwprintf_l vsnprintf_s_vsnprintf_s_vsnprintf_s_l_vsnwprintf_s_vsnwprintf_s_l 编写使用指针参数列表的格式化输出
vsprintf_vsprintf_lvswprintf_vswprintf_l__vswprintf_l vsprintf_s_vsprintf_s_lvswprintf_s_vswprintf_s_l 编写使用指针参数列表的格式化输出
vsscanfvswscanf vsscanf_svswscanf_s 从字符串中读取格式化数据
wcrtomb wcrtomb_s 将宽字符转换为多字节字符表示形式
wcsrtombs wcsrtombs_s 将宽字符字符串转换为多字节字符串表示形式
wcstombs_wcstombs_l wcstombs_s_wcstombs_s_l 将宽字符序列转换为对应的多字节字符序列
wctomb_wctomb_l wctomb_s_wctomb_s_l 将宽字符转换为对应的多字节字符

另请参阅

C 运行时 (CRT) 和 C++ 标准库 (STL) .lib 文件