MatLab-C MEX文件为什么fopen()返回NULL?

MatLab-C MEX文件为什么fopen()返回NULL?,c,matlab,fopen,mex,fclose,C,Matlab,Fopen,Mex,Fclose,我正在写这个mex文件: for (k=0; k<MaxIter; k++){ f=fopen("results.txt", "w"); val=getValue(); fprintf(f, "%d ", val); fclose(f); /* do something with file information */ } 现在对于MaxIter/2迭代,文件已正确创建和写入,但在MaxIter/2+1迭代中,fopen返回NULL,为什么?也许文

我正在写这个mex文件:

for (k=0; k<MaxIter; k++){
    f=fopen("results.txt", "w");
    val=getValue();
    fprintf(f, "%d ", val);
    fclose(f);
    /* do something with file information */
}

现在对于MaxIter/2迭代,文件已正确创建和写入,但在MaxIter/2+1迭代中,fopen返回NULL,为什么?也许文件仍然打开?

你是说MaxIter/2吗?您是否尝试过检查fopen和fclose的返回值?感谢您的回复,我将尽快检查返回值!如果您还没有检查返回值,您怎么知道它们是空的?您是否有意在循环的每次迭代中覆盖results.txt中的值?如果是这样,您可以使用fseek f,0,SEEK_SET,而不是重复打开和关闭文件;在写入循环之前倒回循环中文件的开头。谢谢Tom,但是我只用以下代码检查了f指针:if!f返回错误,但我没有检查th errno变量和fclose返回值。在循环中,在fclose之后,有一段代码将文件信息用于其他目的,我需要为每次迭代打开、写入和关闭文件。对不起,我的错误。谢谢!