- 在外网的服务器之前一直运行的好好的,突然今天报了一个段错误,堆栈如下图
- 函数原型是
int vsnprintf (char * s, size_t n, const char * format, va_list arg );
- 原来是在传入
vsnprintf
时,format里有%s
,但是后面却没有了参数 - 这样就会导致找不到参数,从而报错
- 这时你可能会觉得奇怪,
format
不是很容易看出问题吗,为什么会到出错了才发现 - 这是因为在使用时,直接将
format
当成一个字符串,在上层就合成了,此时format
就有可能会包含%s
,然后传入到vsnprintf
里,就发生报错了 <_<