CRT 9.0 vsprintf_s对长格式字符串的参数验证

时间:2010-12-20 17:29:08

标签: c++ crt

来自here

  

这些功能的版本   _s和_p后缀是更安全的版本。这些版本验证了   格式化字符串并生成一个   格式字符串不是的异常   形成良好(例如,如果无效   使用格式化字符。)

我刚刚发现,如果格式字符串大于输出缓冲区大小,则认为格式字符串格式不正确。有没有人知道确认所有* _s打印功能的文档?

由于

1 个答案:

答案 0 :(得分:1)

看起来默认行为是在超出输出缓冲区大小时抛出CRT错误,无论源是什么。我预计如果超出输出缓冲区大小,则会以静默方式截断输出。因此,如果格式字符串已经太长,则尝试填写格式字符串是没有意义的。