参数验证

大多数增强了安全性的 CRT 函数和许多预先存在的功能验证方法的参数。 这可能包括检查指针空,检查整数属于有效的大小,或检查枚举值是否有效。 如果找到了一个无效参数,参数无效处理程序中执行。

无效参数处理程序实例

C 运行时的行为,当找到了一个无效参数是调用当前分配的参数无效处理程序。 默认无效参数调用 Watson 报告失败,导致应用程序失败并询问用户,如果他们要加载崩溃转储到分析的 Microsoft。 在调试模式,一个无效参数还导致生成失败的断言。

此行为可更改通过使用函数 _set_invalid_parameter_handler 设置无效参数处理程序添加到拥有功能。 如果指定的函数不停止应用程序,控件返回到接收函数参数无效,并且,这些功能将停止执行,通常返回错误代码,并将 errno 到错误代码。 在大多数情况下, errno 值和返回值是两 EINVAL,指示一个参数无效。 在某些情况下,更具体的错误代码返回,例如作为参数传递的错误文件指针的 EBADF 。 有关 errno 的更多信息,请参见 errno、_doserrno、_sys_errlist和_sys_nerr

请参见

参考

CRT库功能

概念

CRT中的安全功能