您的位置:首页 > 其它

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文件在用于输入之前被截断为零。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: