vsnprintf_s 崩溃及注意事项
void LogTrace(LogLevel lv, const char* format, ...)
{
if (m_fnLog == nullptr)
{
return;
}
va_list ap;
va_start(ap, format);
char logbuff[1024]{};
int n = vsnprintf_s(logbuff, sizeof(logbuff), format, ap);
va_end(ap);
if (n <= 0)
{
return;
}
m_fnLog(lv, logbuff);
}
实测,当格式化字符串的长度大于等于1024时,会崩溃。
改成:vsnprintf_s(logbuff, sizeof(logbuff)-1, format, ap)即可,会自动截断。

浙公网安备 33010602011771号