通信人家园
标题:
[求助]c写代码一个问题?
[查看完整版帖子]
[打印本页]
时间:
2011-11-1 08:40
作者:
yinhexitaiyang
标题:
[求助]c写代码一个问题?
c写代码一个问题?
_setmaxstdio(2048);
_setmaxstdio(0XFFFF);
限制了使用fopen循环搜索打开文件的个数次数
超过时文件指针无效,程序死机
怎样能解决?
时间:
2012-4-25 12:00
作者:
yinhexitaiyang
2012-4-25 12:00 上传
下载附件
(25.4 KB)
程序运行不到10分钟就当了。
就是fopen不干活儿了,fputc,fgetc都无效了。
附件:
停.JPG
(2012-4-25 12:00, 25.4 KB) / 下载次数 0
https://www.txrjy.com/forum.php?mod=attachment&aid=MTc0MDk4fGFmMWM2MTE5fDE3MzI0MTMxOTN8MHww
时间:
2012-4-26 21:24
作者:
clifacer
标题:
楼主的问题半年了还没有解决?
看了一下帮助,_setmaxstdio设置的是最多同时打开的文件数量,且2048是上限,0xFFFF根本无意义。无法想像你为何要同时打开这么多文件,也许是你读完了文件没有关闭的习惯吧?
时间:
2012-4-26 21:27
作者:
clifacer
如果是因为迭代深度过大导致文件同时打开数量太多,看能不能优化一下算法,让同时打开文件数量降下来。
时间:
2012-4-27 09:44
作者:
yinhexitaiyang
谢谢clifacer的指点!
打开的文件不多[<10个]也关闭了,但迭代算法次数深度大,文件内容频繁更新可能也算新文件计数,暂时只能把迭代次数分拆凑合用了。也尝试过分配一个大内存malloc()然后使用指针迭代很不好用。
时间:
2012-4-27 11:16
作者:
clifacer
标题:
我估计你是文件打开状态下进入下一层迭代了
可能单看函数本身是先打开退出前关闭的,但函数在打开状态下进入了下一轮迭代,而迭代过程中又打开了新文件。这样的话同时打开的文件数量自然就有增无减了。
时间:
2012-4-27 13:52
作者:
yinhexitaiyang
有道理!
迭代的具体过程确实未知[不知道使用了那的文件]在给定的条件内,函数退出一样的,文件在子函数内,多次调用。
通信人家园 (https://www.txrjy.com/)
Powered by C114