当我尝试打印到文件时,它会出现分段错误。如何打印归档日期和时间?
#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;
}
您忘记了(a)调用fopen()
和(b)注意编译器的警告。如果您没有收到编译器警告,请打开它们或获得更好的编译器。
替换fp=("sys.txt","w+");
为fp=fopen("sys.txt","w+");
并阅读C 中的文件操作
当您的程序尝试访问它不拥有或没有访问权限的内存时,通常会发生分段错误。
此问题出现在您的程序中,因为您错误地尝试打开文件。您必须使用fopen()
调用打开文件:
FILE *fopen(const char *path, const char *mode);
在当前状态下,程序尝试将字符串写入由包含一些随机值的文件描述符描述的文件。也就是说,它会尝试写入一个可能不存在且绝对没有写入权限的随机文件。
如果你用 gcc 编译你的代码,你会看到这个通知你一个潜在的问题:
warning: assignment from incompatible pointer type