使用时间函数时出现分段错误(核心转储)错误

时间:2014-01-05 21:28:54

标签: c linux ubuntu segmentation-fault

你好我是Linux和c编程的新手,所以这可能是一个愚蠢的问题,但我找不到答案。

我正在写一份家庭作业,他们希望我使用time()函数在程序结束时打印执行时间,所以当我在程序中使用该函数时,我得到了消息segmentation fault (core dumped)和当我删除它的程序工作agine。 然后我在下面的代码中创建了一个测试文件:

#include <stdio.h>

int main()
{
    time();
    return 0;
}

我得到了同样的错误信息。

也尝试过:

#include <stdio.h>

int main()
{
    time(NULL);
    return 0;
}

#include <stdio.h>
#include <time.h>

int main()
{
    time_t t;

    time(&t);
    return 0;
}

并得到了同样的错误。

所以我做错了什么?

由于

2 个答案:

答案 0 :(得分:3)

在前两个例子中,您忘记包含time.h.这就是这些例子中分段错误的原因。如果您正在使用gcc,请尝试使用-Wall进行编译(打开所有警告)。你应该得到一个警告,表明函数“时间”的隐式声明 - 换句话说,你忘了包含time.h。

然而,你的最后一个例子对我来说很好。但是,如果您仍然遇到分段错误,请尝试使用gdb进行调试。

答案 1 :(得分:1)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
  time_t now;
  time(&now);

  printf("%s", ctime(&now));

  return EXIT_SUCCESS;
}