fprintf与stderr、stdout的使用
来源:互联网 发布:牛耳软件教育 编辑:程序博客网 时间:2024/04/30 06:31
转自 http://blog.sina.com.cn/s/blog_912673ce01013qq9.html
fprintf()中的 stderr说明
先看一个小例子:
---------------------------------------------
#include <stdio.h>
void main()
{
fprintf(stderr,"can't open it!");
fprintf(stdout,"can't open it !");
printf("can't open it!");
}
---------------------------------------------
上面程序编译成fprint文件,运行显示如下:
Can't open it! Can't open it! Can't open it!
若将输入重定向到一个temp.txt文件中,运行:./fprint >temp.txt 结果如下:
Can't open it!
查看temp.txt文件内容为:
Can't open it!Can't open it!
说明:
stdout -- 标准输出设备 (printf("..")) 同 stdout。
stderr -- 标准错误输出设备 两者默认向屏幕输出。
但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。
strerr是作为程序运行过程中的错误显示出来的,若想将它重写向到某文件中,需要运行如下命令:
./fprint 2>temp.txt
这样运行结果就为:
Can't open it!Can't open it!
查看temp.txt文件的内容是:
Can't open it!
1,我们知道,标准输出和标准错误默认都是将信息输出到终端上,那么他们有什么区别呢?让我们来看个题目:
问题:下面程序的输出是什么?(intel笔试2011)
int main(){
fprintf(stdout,"Hello ");
fprintf(stderr,"World!");
return0;
}
解答:这段代码的输出是什么呢?你可以快速的将代码敲入你电脑上(当然,拷贝更快),然后发现输出是
World!Hello
这是为什么呢?在默认情况下,stdout是行缓冲的,他的输出会放在一个buffer里面,只有到换行的时候,才会输出到屏幕。而stderr是无缓冲的,会直接输出,举例来说就是printf(stdout, "xxxx") 和 printf(stdout, "xxxx\n"),前者会憋住,直到遇到新行才会一起输出。而printf(stderr, "xxxxx"),不管有么有\n,都输出。
- fprintf与stderr、stdout的使用
- fprintf与stderr、stdout的使用
- Unix——fprintf与stderr、stdout的使用
- stdout与stderr的区别
- stdout 与 stderr 的区别
- 格式化输出函数fprintf()中的stdout、stderr
- stderr和stdout(printf、fprintf、sprintf)
- 一、stderr与stdout的区别
- stdout 与 stderr 区别
- stdout 与 stderr区别
- fprintf中使用stderr
- fprintf、fflush(stdout)、printf、sprintf与fprintf 的用法区分
- stdout, stderr的区别
- 冷知识:copy命令的stdout与stderr
- stdin,stdout,stderr与STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO的区别
- stdin stdout stderr的定义
- stdout&stderr引发的思考
- stdin, stdout, stderr与STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO
- 有序数组A,B的中位数
- 黑马程序员_JAVA:网络编程
- hdu2844
- linux修改内核频率
- 设计模式总论
- fprintf与stderr、stdout的使用
- 初学for循环
- 防止SQL注入
- php 文件编程
- 关于jsp和servlet中实现页面跳转的几种方式总结
- Java的内存回收机制
- jsp下页面跳转的几种方法小结
- 分布式小白对Memcached和Redis的比较
- 基于php的json rpc原理及应用