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

更新:2007 年 11 月

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

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

安全说明:

提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。

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

  • 在 Visual Studio 的“帮助”菜单上,单击“示例”。

    有关更多信息,请参见定位示例文件

  • 示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。

  • 还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 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

其他资源

通用示例