stderr 跟stdout
2015-06-07 10:36
246 查看
stdin,stdout和stderr即标准输入,标准输出和标准错误输出,默认情况下分别指向键盘,显示器,显示器。
fprintf(stdout,"")等同于printf("") 相当于封装fprintf(stderr,"Error");和printf("Error");
一般情况下,你这两个语句运行的结果是相同的,没有区别,只有一下情况才有区别:运行你的程序的时候,命令行上把输出结果进行的转向,比如使用下面的命令把你的程序a.c运行的结果转向到记事本文件a.txt:
a.exe > a.txt
在这样的情况,如果使用printf输出错误信息,会保存到a.txt文件里面,如果使用fprintf输出错误,会显示在屏幕上。
printf、sprintf与fprintf 的用法区分
1.printf 是和标准输出文件(stdout)关联的,fprintf 则没有这个限制.
2.fprintf是用于文件操作的,原型是int fprintf( FILE *stream, const char *format [, argument ]...);
3.sprintf是格式化输出到一个字符串,fprintf是格式化输出到一个stream,通常是到文件。
int fprintf( FILE *stream, const char *format [, argument ]...);
int sprintf( char *buffer, const char *format [, argument] ... );
重定向遵循的规则如下:
1.重定向运算符讲一个可执行程序与一个数据文件连接起来。它不能连接两个可执行程序,也不能连接两个文件。
2.使用重定向运算符时,输入只能定向到一个文件,即输入不能来自一个以上的文件。输出同理。
3.不要把一个程序的输入和输出定向到一个文件,如 xxxx < text >text,>text 使原始的text文件在用于输入之前被截断为零。
相关文章推荐
- 【EPI】通过位运算求集合的全排列
- android java.lang.NullPointerException
- c和c++关于const的一些区别
- gcc编译C++程序
- Ubuntu更新源
- android 首开机会在数据链接图标的状态栏打开并自行消失主动
- 使用Lucene.NET实现站内搜索
- 海量数据处理
- 每日一得-org.hibernate.hql.ast.QuerySyntaxException: Path expected for join!错误解决办法
- opencv图像边缘检测Canny算子的总结分析
- Delphi Access violations 问题的解决之道
- javaweb生成验证码图片
- MPEG4IP
- oracle的多表查询
- java中各种集合的用法和比较
- mysql innodb插入意向锁
- C#高级编程第三天
- HDU-1038-Biker's Trip Odometer(C++ && 提高英语能力!)
- SQL资料
- Project Euler:Problem 47 Distinct primes factors