你好我是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;
}
并得到了同样的错误。
所以我做错了什么?
由于
答案 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;
}