当我尝试打印到文件时,会出现分段错误。如何打印日期和时间进行归档?
#include <time.h>
#include <stdio.h>
main()
{
FILE *fp;
time_t mytime;
mytime=time(NULL);
fp=("sys.txt","w+");
fprintf(fp,"%s",ctime(&mytime));
fclose(fp);
return 0;
}
答案 0 :(得分:0)
你忘了(a)打电话给fopen()
和(b)注意编译器的警告。如果您没有收到编译器警告,请打开它们或获得更好的编译器。
答案 1 :(得分:0)
当程序试图访问其不拥有或具有访问权限的内存时,通常会发生分段错误。
程序中出现此问题,因为您错误地尝试打开文件。您必须使用fopen()
调用来打开文件:
FILE *fopen(const char *path, const char *mode);
在当前状态下,程序尝试将字符串写入由包含某个随机值的文件描述符描述的文件。也就是说,它试图写入一个可能不存在的随机文件,并且它肯定没有写入权限。
如果您使用gcc编译代码,您会看到这会通知您潜在的问题:
warning: assignment from incompatible pointer type
答案 2 :(得分:0)
将fp=("sys.txt","w+");
替换为fp=fopen("sys.txt","w+");