stdout与stderr的区别

 

stdout是标准输出流,默认为屏幕,
stderr是标准错误流,一般把屏幕设为默认,  也可以输出到文件。 


两者默认向屏幕输出。
但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。

例如:
my.exe
Can't open it!
Can't open it!
Can't open it!

转向标准输出到磁盘文件tmp.txt
my.exe > tmp.txt
Can't open it!

用TYPE 看 tmp.txt的内容:
TYPE tmp.txt
Can't open it!
Can't open it!

[From: http://zhidao.baidu.com/link?url=KChwN-hf5yzWOJfJM3H9nENZq6Ba_QnDNdXX-_8-hNEHxBfjVv7PnuDTUvu55dUYuRbtd_avy4LY1dyuSlzU3a]

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

标准输入,输出应该是行缓冲
Line buffering is typically used on a stream when it refers to a terminal: standard input and standard output, for example.

摘自apue section 5.4

出错是无缓冲

举例来说就是你,printf(stdout, "xxxx"); 而不是printf(stdout, "xxxx\n"),前者会憋住,直到遇到新行才会一起输出
printf(stderr, "xxxxx"),不管有么有\n,都输出。

【From: http://bbs.chinaunix.net/thread-1634457-1-1.html

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值