GNU C printf行缓冲问题

GNU C printf行缓冲问题

今天写项目时发现一个令人匪夷所思的问题,就是Printf函数一直打印不出预想的结果,搞得很郁闷
排查之后才发现是因为库函数printf的行缓冲的原因
简单复现一下:
在这里插入图片描述
这段代码会打印多少个数字呢?答案是256个,即使循环次数有257次,最后一个由于停留在了缓冲区中没有被打印出来,因此也不会显示在屏幕上。这是由于_exit(0)是内建的不完整的退出函数,并不打算帮你打印完整缓冲区内容再退出程序。如果需要退出的话应当调用exit函数。
如果将_exit函数换成一个while(1)死循环,或是execve函数,会得到同样的结果。调用fflush手动刷新缓冲显示可以避免类似情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值