为什么错误" vfprintf_chk.c:没有这样的文件或目录"发生?

时间:2015-06-10 07:20:47

标签: c++ c

代码如下:

int outlog_printf(size_t level, const char* format, ...) {
    va_list args;
    int ret = 0;
    // We are going to print this to the screen
    if (verbose_level >= level) {
        va_start(args, format);
        ret = vfprintf(stdout, format, args);
        fflush(stdout);
        va_end(args);
    }
    // We are going to print this to the logfile
    if (log_level >= level) {
        va_start(args, format);
        ret = vfprintf(log_f, format, args);
        va_end(args);
    }
    return ret;
}

在main函数中,我调用out_printf():

outlog_printf(1, "Initialize the program!\n");

我使用g ++编译程序,看起来很好。但是当我执行它时,会发生错误:

  

分段错误(核心转储)

然后,我尝试用gdb调试它。当谈到以下语句时(在outlog_printf函数中):

ret = vfprintf(log_f, format, args);

我收到以下错误:

  

编程接收信号SIGSEGV,分段故障。   ___vfprintf_chk (fp=0x0, flag=1, format=0x8b59050 "Initialize the program!\n", ap=0xbfffee78 "\n") at vfprintf_chk.c:29
  29 vfprintf_chk.c:没有这样的文件或目录。

我搜索了很多内容,但没有找到解决办法...... 顺便说一句,我在Ubuntu 14.04下。

0 个答案:

没有答案