c语言打印到标准错误,C和C++中的标准输出和标准错误输出



C语言相关

C中的标准输出和标准错误输出是stdout和stderr两个"File *"类型的文件指针。

fprintf(stdout,"stdout: hello world\n");

fprintf(stderr,"stderr: hello world\n");

C++相关

C++中的则是cout和cerr两个output stream。

cout << "cout: hello world\n";

cerr << "cerr: hello world\n";

重定向

"1>"重定向标准输出:

#./a.out 1>info

通过上面的方法C语言中的stdout和C++中的cout,被重定向到指定文件。

"2>"重定向标准错误输出:

#./a.out 2>info_err

通过上面的方法C语言中的stderr和C++中的cerr,被重定向到指定文件。

"2>&1"让标准错误输出重定向到标准输出的位置:

#./a.out 1>info 2>&1

需要特别注意的一点:

cmd1      #./a.out 1> info

cmd2      #./a.out 1 > info

比较上面两条语句,它们的区别是第二句在"1"和">"之间多了一个空格。打开各自产生的info文件,会发现内容是一样的。这样很容易误认为两句话是完全等价的,其实不然。

cmd1是货真价实的把stdout重定向到info。cmd2是把"1"作为参数传递给了a.out(printf出main函数的argv[1]就知道了)。然后cmd2默认把标准输出重定向了。 所以cmd1和cmd2才有相同的执行效果。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值