每次读取一定数量的文件后C代码退出时

每次读取一定数量的文件后C代码退出时,c,fopen,C,Fopen,我有两组数据文件“p”(位置)和“F”(力)文件。分别(在两种不同的代码中)代码可以打开和读取所有“P”和“F”文件。当我试图在单个代码中同时读取它们时,代码会打开并从文件中读取数据,但只有1004个“P”文件,然后退出。我甚至无法调试它,因为它显示正常退出。 我应该如何调试代码?计算机内存充足,数据文件不大。以下是打开文件的部分代码: ... FILE *finput1, *finput2; char filename[160], filename2[160]; ... for (i=0;i

我有两组数据文件“p”(位置)和“F”(力)文件。分别(在两种不同的代码中)代码可以打开和读取所有“P”和“F”文件。当我试图在单个代码中同时读取它们时,代码会打开并从文件中读取数据,但只有1004个“P”文件,然后退出。我甚至无法调试它,因为它显示正常退出。 我应该如何调试代码?计算机内存充足,数据文件不大。以下是打开文件的部分代码:

...
FILE *finput1, *finput2;
char  filename[160], filename2[160];
...
for (i=0;i<N_f1;i++) {
sprintf(filename, "F%d.dat", i);
    finput1=fopen(filename,"r");
if( finput1 == NULL ) {
    printf(" Could not open F file!\n");
    return 0;
}

sprintf(filename2, "P%d.dat", i);
finput2=fopen(filename2,"r");
if( finput2 == NULL ) {
    printf(" Could not open P file! %d \n",i);
    return 0;
}
...
。。。
文件*finput1,*finput2;
char filename[160],filename2[160];
...

对于(i=0;i您遇到了最大数量的文件描述符。请在打开下一个文件后关闭每个文件。

可以同时打开的文件有限,您可以在
stdio.h
中检查
FOPEN_MAX
的值


请注意,这是实现所保证的最小文件数,在实际操作中,您可能会打开更多的文件。

谢谢。我已更改了代码,在阅读每个文件后,我关闭了它,它就可以工作了!谢谢抱歉,伙计们,我没有足够的声誉来投票支持您的答复。谢谢,您是对的,这是打开的文件数.