admin管理员组文章数量:1794759
关于fopen打开文件出错问题(数目受限)
设置同时打开文件数的最大数目。 stdio 级别。
int _setmaxstdio( int newmax );返回 newmax ,如果成功;– 1 否则为。
如果 newmax 比 _IOB_ENTRIES 小于或大于的然后处理的最大数量可用在操作系统,无效参数调用处理程序,如 参数验证所述。 如果执行允许继续,此函数返回 -1 并将 errno 到 EINVAL。
其中设置的newmax 的值最大可以设置为2048, 而系统的默认值则更小,显然2048可能也无法满足我们的要求。 这个可以通过添加一些代码实现, 例如: 在打开一个文件时开始计数,得到已经打开文件的数目。 再计数到2048前用 fclose(fp);//FILE fp 这样是避免了句柄的限制,这样之后可以一次性打开多个文件,但同时会出现另外一个问题,那就是内存问题。每次打开一个文件后都会占用一定的内存随着内存不断增加,最后还是会导致程序崩溃。所以为避免这些问题, 解决办法: 我们在每打开一个文件使用完毕后一定要记得关闭(fclose(fp)),这样就不会报错了类似于 new之后要用delete 关闭。 再从新打开这个时候从新计数, 这样就解决了打开文件数目限制。 第一次发表, 格式排版不好 望见谅, 这是自己调试的一点体会。版权声明:本文标题:关于fopen打开文件出错问题(数目受限) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686795314a103921.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论