调用vfprintf造成segment fault,这个是什么原因

foursea 2013-05-09 02:23:24
代码非常简单
#define VA_VERSION_S "0.33.0"
void va_infoMessage(const char *msg, ...)
{
va_list args;

fprintf(stderr, "libva: ");
va_start(args, msg);
vfprintf(stderr, msg, args);
va_end(args);
}

VAStatus vaInitialize()
{
va_infoMessage("VA-API version %s\n", VA_VERSION_S); --------------这句一执行,就立马segment fault。
}

这个是什么原因?
...全文
289 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
prohibit 2013-05-10
  • 打赏
  • 举报
回复
你可以试试va_infoMessage("VA-API version %d\n", 3);或va_infoMessage("VA-API version 0.33.3\n");会出错不
Carl_CCC 2013-05-09
  • 打赏
  • 举报
回复
我也怀疑是其他的地方死的,是多线程吧。
qq120848369 2013-05-09
  • 打赏
  • 举报
回复
可能其他地方破坏了内存了.
foursea 2013-05-09
  • 打赏
  • 举报
回复
添加一点,我用vsprintf来实现同样的功能,就没有问题。用vfprintf就会segment fault。 奇怪来着。

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧