求助,fprintf函数生成文件数量较大时出错
代码如下,程序运行一次后会生成285个文件,这个过程不会出问题,如果再继续运行一次,则生成到第224个文件后出错,提示:
File:fprintf.c
Line:56
Expression: str!=NULL
。。。
以前也出现过类似情况,用fprintf函数生成的文件比较多时就会出错,实在不知道是因为什么,向高手请教一下,不胜感激!
void ProSail(int dayNum, long *date, float *lai, double *IR, double *NIR) {
char file[50];
char path[30];
int year;
double BRDF[WAVENUM];
FILE *outputFile;
TIME TIMEdata;
void Prospect(REF[]);
int CalculateSail(TIME, LAI, REF[], double[]);
TIMEdata.hour = 12;
TIMEdata.minute = 0;
TIMEdata.second = 0;
TIMEdata.latitude = 40.182;
TIMEdata.logitude = 116.444;
LAIdata.lad = 67;
LAIdata.epsilon = 0.988;
year = date[0] / 1000;
strcpy(path, ".\\OutputFile\\");
for(int i=0; i<dayNum; i++) {
LAIdata.date = date[i] % 1000;
LAIdata.lai = lai[i];
if(lai[i] != 0) {
Prospect(REFdata);
CalculateSail(TIMEdata, LAIdata, REFdata, BRDF);
//文件输出
wsprintf(file, "%s%05ldResult.txt", path, date[i]);
outputFile = fopen(file, "w+");
for(int j=0; j<WAVENUM; j++) {
fprintf(outputFile, "%4d, %lf\r\n", REFdata[j].wavelength, BRDF[j]);
if(j>=46 && j<=58) {
IR[i] += BRDF[j];
}
if(j>=72 && j<=100) {
NIR[i] += BRDF[j];
}
}
IR[i] /= 13;
NIR[i] /= 29;
fclose(outputFile);
}
}
}