我使用的是Windows7,使用gcc version 4.8.1编译。我有一个大型的多线程C程序,它对fopen和fclose进行了大量调用。如果它运行的时间足够长,它就会开始无法打开文件。我使用<errno.h>进行调试,得到了一个Too many open files错误,尽管一次打开的文件不应该超过几个。我已经检查了代码很多次,都找不到bug (每次对fopen的调用都会有一个相应的fclose调用被执行,并且没有一个函数使用超过一个FILE*变量)。还有进一步的调试建议吗?特别是有没有一个函数可以返回当前打开的文件数?