SecureCRT 示例:将已否决的 CRT 函数转换为它们的 _s 副本

本示例说明如何将出于安全原因而被否决的 CRT 函数转换为它们的 _s 副本。 涉及下列函数的转换:strcpystrncpyfopen_splitpathsprintfgetenvstrcat_creatitoa。 它还演示了另一个新增的安全 CRT 函数 _set_invalid_parameter_handler 的使用。

本示例使用标准 CRT 函数实现贝叶-莫尔字符串匹配算法。

安全说明安全说明

此代码示例用于阐释一个概念,并且仅显示与此概念相关的代码。该代码可能不符合特定环境的安全要求,因此不应原样搬用所显示的代码。我们建议您添加安全性代码和错误处理代码,以使项目更加安全可靠。Microsoft“原样”提供此代码示例,不提供任何保证。

获取示例和安装示例的说明:

访问 Visual Studio 中的示例

  • 在**“帮助”菜单上,单击“示例”**。

    默认情况下,这些示例安装在 drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ 中。

  • 有关此示例的最新版本以及其他示例的列表,请参见 MSDN 网站上的 Visual Studio 示例

生成并运行此示例

  1. 在 Visual Studio 开发环境中打开解决方案文件 SecureCRT.sln。

  2. 从**“生成”菜单中单击“生成解决方案”**。

  3. 从**“项目”菜单中单击“属性”**。

  4. 在**“配置属性”下选择“调试”**。

  5. 在**“命令参数”**文本框中指定要传递给程序的参数(“if find.cpp”是很好的首选)。

  6. 在**“调试”菜单上,单击“开始执行(不调试)”**。 应用程序会在文件(在本例中是 find.cpp)的每一行中搜索您在“命令参数”中指定的文本(“if”),并会将所有匹配项写入工作目录中的某个文件(在本例中是 find.cpp.match)。

  7. 也可以从命令行运行应用程序:SecureCRT.exe if find.cpp。

关键字

strcpy_s, strncpy_s, fopen_s, _splitpath_s, sprintf_s, getenv_s, strcat_s, itoa_s, _set_invalid_parameter_handler

请参见

参考

strcpy_s, wcscpy_s, _mbscpy_s

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l

fopen_s, _wfopen_s

_splitpath_s, _wsplitpath_s

sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l

getenv_s, _wgetenv_s

strcat_s, wcscat_s, _mbscat_s

_itoa_s, _i64toa_s, _ui64toa_s, _itow_s, _i64tow_s, _ui64tow_s

_set_invalid_parameter_handler

其他资源

常规示例