我的代码当前正在消耗日志文件输出的字符,我不知道为什么。

FILE* theLog;
char filename[150];
theLog = fopen(filename, "w");
fprintf(theLog, "Blah Blah Blah");
time_t t = time(NULL);
struct tm tm = *localtime(&t);
fprintf(theLog, " Time: %d-%d-%d %d:%d:%d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
fclose(theLog);



FILE* fp = fopen(((Start *)start)->logFile, "a");
fprintf(fp, "More Stuff");
fclose(fp);


然后,我的输出将是这样的:“ Blah Blah Blah时间:2015-6-1 19:56:48 uff”

由于某些原因,“更多内容”被消耗/覆盖/消失。

最佳答案

代码用截断文件

theLog = fopen(filename, "w");
// w truncate to zero length or create text file for writing


使用"a"附加。

theLog = fopen(filename, "a");

10-07 19:16