fputs函数之后有必要加上fflush函数。
来源:互联网 发布:提升淘宝店铺权重 编辑:程序博客网 时间:2024/05/18 20:10
最近再弄一个项目,采集话单是其中的一个入口,而采集需要支持多个网元采集,而各个网元之间不能互相影响到。实现为多线程,当有几个网元的时候就生成几个线程,每个线程各自处理自己的采集功能,采集完文件后,需要对文件进行解码,解码后需要生成类似“|1111|2222|33333|44444|5555555|6666|"的缓冲内容,写入另外一个文件。
程序里,每次缓冲区有char lineBuf[2048]那么大。调试程序时,发现程序可以退出线程,但是退出线程后,程序却奔溃了,而发现写入的那个文件记录只写了11行半,
应该是要记录13行的,一开始,我还以为是程序代码异常,发生内存异常,看了几次代码,调试了几次都没发现。最后想了想,fputs命令是执行了13次,不过结果只写入了11行半,是不是内存缓冲区异常或者被占用清除了。于是想到fflush去刷新缓冲区,每fputs后,就刷新一下。果然,最后程序正常了,写文件也正常了。
如果不把解码接口放入线程函数中,而放在进程里,相信是不会出现这个问题的。只不过线程跟进程空间还是有差别的。所以为了安全起见,fputs和fflush还是很有必要一起出现的。
- fputs函数之后有必要加上fflush函数。
- fflush函数
- fflush()函数
- fflush函数
- fflush函数
- fflush函数
- fflush函数
- fflush 函数
- fflush 函数
- fflush()函数
- fgets(),fputs(),字符串函数
- fgets函数 和 fputs
- fgets 和fputs函数
- fgets()和fputs()函数
- 文件操作函数fputs
- fgets() - fputs()函数使用
- fprintf fputs 函数学习
- fputs函数来骂人
- Linux下Fork与Exec使用 (转)
- Scanner 扫描文件内容 读取文件
- ubuntu安装未分区硬盘不可用
- Oracle回收站使用全攻略
- 使用vi编辑文件,出现“*** is busy”,如何处理?
- fputs函数之后有必要加上fflush函数。
- 位运算
- 此Blog已搬家
- 二叉排序树-2
- aspcms注入 cookies欺骗及修复
- 【小蒙淘金】1.3金评-元旦之后,且看今朝
- 多项式
- list链表
- dbus netlink socket