我有一些代码可以迭代地将数据附加到文件中,看起来类似于:
for(int i=0; i<number; i++){
FILE *log_file;
char name[50];
sprintf(name,"something_%d.log",i);
log_file=fopen(name,"a");
if(log_file == NULL){
printf("ERROR cannot open file %s",name);
abort();
}
/* Write stuff to file */
fclose(log_file);
}
看起来很简单吧?如果文件存在并且我有权写入它,它会正常进行;如果该文件不存在且我有权在目录中写入文件,则会正常创建该文件。错误!不知何故,当我遇到特定文件名(MINI_3f_1_0.log
)时,程序无法创建/打开文件并产生log_file = NULL
。显然这不是我的整个代码,最糟糕的是我无法通过一个简单的程序重现这个问题。
我已经花了几个小时试图追踪正在发生的事情,到目前为止,我对以下内容100%肯定:
你们/ gals给我的任何指导都将不胜感激。如果你在经历中遇到过这样的事情,你是如何解决的?
答案 0 :(得分:0)
正如Mat在评论中所建议的那样,在不同目录中运行代码不会产生错误。文件系统可能存在问题,需要由sys-admin查看。