我基本上正在尝试创建一个日期和时间作为其名称的日志文件。这是我的代码在使用Linux的C中的分段错误(核心转储) - 特例
char logger [500];
time_t time1;
struct tm * timeinfo;
time (&time1);
timeinfo = localtime (&time1);
sprintf(logger, "TestTreiber_%d%d%d%d%d%d.log",timeinfo->tm_year+1900,timeinfo->tm_mon+1,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
printf("All logging during this test is done in : %s",logger);
sprintf(logger, "prot/%s",logger);//STEP 1: I encounter the error here
FILE *logFile;
logFile= fopen(logger,"w");
没有第1步,每件事情都很好。它在我的程序所在的同一个文件夹中创建了一个我想要的名称的日志文件。但是当我将第1步加入混音时,它会给我这个错误。
Segmentation Fault (core dumped)
我是新来的Linux,但我知道它是与记忆,所以我增加了分配给记录仪内存[500](早前255工作得很好了)。但我似乎无法解决这个问题。 prot文件夹确实存在于我正在运行的目录中。请帮忙!
PS对不起,大写字母的错误用法,我正在使用德语键盘。
你不能'sprintf'字符串本身,你在'sprintf(记录器,“prot /%s”,记录器)。 –
plus用spprintf替换sprintf这样更安全 – fghj
@ user1034749我做了这个,但仍然是相同的错误。 – ITguy