免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6599 | 回复: 11

c语言printf函数的疑惑 [复制链接]

论坛徽章:
0
发表于 2011-12-03 16:35 |显示全部楼层
为什么这个函数在linux下输出有很大的“延迟”,线程和子进程的输入不是在运行时输出,而是线程和子进程退出的时候一起输出,求高手指教,我现在还得用这个东西追踪程序~~~

论坛徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16赛季CBA联赛之广东
日期:2017-08-22 19:23:1215-16赛季CBA联赛之上海
日期:2016-06-18 23:05:05操作系统版块每日发帖之星
日期:2016-06-06 06:20:00操作系统版块每日发帖之星
日期:2016-06-05 06:20:00操作系统版块每日发帖之星
日期:2016-06-03 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10处女座
日期:2014-05-22 09:00:1815-16赛季CBA联赛之广夏
日期:2017-09-25 23:37:46
发表于 2011-12-03 16:42 |显示全部楼层
“线程和子进程的输入不是在运行时输出“

这是啥意思?小处不严谨,大处也可想而知。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2011-12-03 16:49 |显示全部楼层
为什么这个函数在linux下输出有很大的“延迟”,线程和子进程的输入不是在运行时输出,而是线程和子进程退出 ...
156815131 发表于 2011-12-03 16:35



    标准IO有行缓冲,块缓冲与无缓冲之分

论坛徽章:
1
亥猪
日期:2013-10-30 23:29:55
发表于 2011-12-03 21:48 |显示全部楼层
回复 3# cjaizss


    正解!

论坛徽章:
0
发表于 2011-12-03 22:30 |显示全部楼层
fflush(stdout);

论坛徽章:
323
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
发表于 2011-12-04 20:09 |显示全部楼层
stdout一般是行缓冲,输出时加 \n

论坛徽章:
0
发表于 2011-12-05 14:28 |显示全部楼层
我写的都是printf("some word\n");运行到这一句的时候并没有打印出这一句出来,而是在这个语句所在的线程或者是进程运行结束后才打印出来~

论坛徽章:
0
发表于 2011-12-05 15:09 |显示全部楼层
行缓冲和全缓冲是不一样的。

论坛徽章:
0
发表于 2011-12-06 16:22 |显示全部楼层
如果你都能感觉到延迟,那有可能是IO是不是太忙了。

论坛徽章:
0
发表于 2011-12-06 17:55 |显示全部楼层
不至於這麼慢的,把程序放在別的linux平臺試試。

或者使用:
fprintf(stderr,"some error");
fprintf(1,"some outpu");

試試。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP