使用很多调用fprintf; 我应该什么时候使用fflush?

 星控-集中营_220 发布于 2022-12-31 11:37

我有一个简单的小程序,可以将一种文件类型转换为另一种.fprintf()有很多调用(大致线性地依赖于要转换的文件的大小).当我开始时,没有调用fflush().在小文件(<10 Kb)上没有任何问题.在一个较大的文件(> 40 Kb)上,当达到fclose()的调用时,整个事情就崩溃了.

所以,我想也许我让缓冲区填满了太多东西,所以我在大约*512次调用fprintf(其中每个调用打印出8到10个字符)之后调用fflush().该程序仍然在调用fclose()时崩溃.

*因为我没有实际计数调用fprintf中,我用另算中已有的程序,有可能这个数字小于512.

这让我想到了我的问题.什么时候应该调用fflush()?应该在一定数量的数据被打印后调用吗?还是有什么我想念的?

谢谢

顺便说一句,如果它是相关的,我在Windows 7(64位)上,我已经在"a +"模式下输出文件

1 个回答
  • 如果fprintf没有一次通话就可以多次拨打电话是完全合法的fflush.崩溃是由程序中的其他内容引起的,很可能是一些无效的内存访问,添加fflush调用不会修复它们.

    2022-12-31 11:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有