Tag: fclose

fclose()导致分段错误

我有一个制表符分隔的文本文件,我正在解析。 其第一列包含格式为chrX字符串,其中X表示一组字符串,例如“1”,“2”,……,“X”,“Y”。 当解析文件时,这些都存储在称为chromosome的char* 。 文本文件按字典顺序排在第一列,即,我将有一些以“chr1”开头的行,然后是“chr2”等。 在每个“chrX”条目中,我需要打开与此条目关联的另一个文件: FILE *merbaseIn; // loop through rows… if (chromosome == NULL) openSourceFile(&chromosome, fieldArray[i], &merbaseIn, GENPATHIN); else { if (strcmp(chromosome, fieldArray[i]) != 0) { // new chromosome fclose(merbaseIn); // close old chromosome FILE ptr free(chromosome); // free old chromosome ptr openSourceFile(&chromosome, fieldArray[i], &merbaseIn, GENPATHIN); // set up new chromosome FILE ptr […]

文件关闭后FILE指针会发生什么?

我希望知道文件关闭后FILE指针会发生什么。 它会是NULL吗? 基本上,我想在关闭文件之前检查文件是否已经关闭。 例如如下: FILE *f; if(f!=NULL) { fclose(f); } 我可以这样做,还是有其他方法可以解决这个问题?