今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣。

int fprintf(FILE *stream,char *format,[argument]);

在此之前先区分一下:printf,sprintf,fprintf。

1,printf就是标准输出,在屏幕上打印出一段字符串来。

2,sprintf就是把格式化的数据写入到某个字符串中。返回值字符串的长度。

3,fprintf是用于文件操作。

原型:int fprintf(FILE *stream,char *format,[argument]);

功能:fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指  定的文件。

例子:

char name[20] = "lucy";

FILE *out;

out = fopen( "output.txt", "w" );

if( out != NULL )

fprintf( out, "Hello %s\n", name );

返回值:若成功则返回输出字符数,若输出出错则返回负值。

好了,以上到此为止。

然后深挖stdout,stderr。

stdout, stdin, stderr的中文名字分别是标准输出,标准输入和标准错误。

今天时间仓促,以下摘自

http://blog.sina.com.cn/s/blog_912673ce01013qq9.html(十分感谢)

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,都输出。

2,fprintf(stderr, "Can't open it!\n");

fprintf(stdout, "Can't open it!\n");

printf("Can't open it!\n");

这3句效果不是一样啊,有什么区别吗?

有区别。

stdout -- 标准输出设备 (printf("..")) 同 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!

总结:注意1,点,2点即可!

python stdout stderr 一起输出_stdout和stderr标准输出的区别相关推荐

  1. python stdout stderr 一起输出_Python捕获stdout/stderr并在看到outpu的同时记录到文件

    所以我有一个python脚本,它试图自动化整个构建过程.因此,它不仅调用python文件,还调用shell脚本.maven等,所以我需要的是一个方法/过程/库,将stdout和stderr的输出捕获到 ...

  2. stdout和stderr标准输出的区别

    stderr和stdout详细解说 今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argumen ...

  3. python实时获取子进程输出_Python 从subprocess运行的子进程中实时获取输出的例子...

    有些时候,我们需要将某些程序放到子进程中去运行,以达到整合系统的目的.在Python中,一个非常好的选择就是使用subprocess模块,本模块为开辟子进程去执行子程序提供了统一的接口,更加便于学习和 ...

  4. python调用linux命令输出结果,Python-运行shell命令并捕获输出

    小编典典 这个问题的答案取决于你使用的Python版本.最简单的方法是使用以下subprocess.check_output功能: >>> subprocess.check_outp ...

  5. python 3 输入和输出

    一.普遍的输入和输出 1.输入 在python3中,函数的输入格式为:input(),能够接受一个标准输入数据,返回string类型. input() 函数是从键盘作为字符串读取数据,不论是否使用引号 ...

  6. Python·.·.print()函数格式化输出-超详解

    Python·.·.print()函数格式化输出 print()函数格式为: print(objects, sep=' ', end='\n', file=sys.stdout) 文章目录 Pytho ...

  7. input只能输入两位小数_四十三、Python的输入与输出

    Python的输入与输出 一.输出格式美化 Python常见的有两种输出值的方式:表达式语句和print()函数.而第三种方式是使用文件对象的write()方法,标准输出文件可以用sys.stdout ...

  8. python以垂直方式输出_python学习笔记

    Author: maddock Date: 2015-03-15 21:42:01 (暂时没有整理) python json文件处理 #coding:utf-8 importjson#data = [ ...

  9. python输入三个数输出最小值_python之输入一系列整数输出最大值

    在python学习中,我们经常会遇到:编写一个程序,输入若干整数或者是在一串字符中,输出最大值(数)的问题.那么在这里,我给出了几种常见的,也是几种比较常用的方法,希望能给大家的学习带来一定的帮助. ...

最新文章

  1. 探子报!双十一紧急军情!!!
  2. SpringMVC实现简单的图片上传DEMO
  3. 11.20 yum:自动化RPM包管理工具
  4. mysql dal_Entity Framework连接Mysql数据库并生成Model和DAL层
  5. [前台]---js中方法的强制返回和java中方法的强制返回
  6. 客座编辑:杜小勇(1963‒),中国人民大学信息学院教授,博士生导师。
  7. 不想用鸿蒙系统怎么办,华为鸿蒙系统出大BUG!网友:这再也不是用户想要的鸿蒙系统...
  8. STM32F103单片机读取芯片自身ID
  9. Linux中tar命令用法
  10. dell刷sn_像API一样地通过Dell设备SN号自动获取准确的设备型号
  11. CoreOS容器云企业实战(3)--Docker技术实践
  12. 计算机无法屏幕亮度,电脑更新windows 10 四月更新1803后,笔记本电脑亮度无法调节。...
  13. 浪潮之巅 第五章 奔腾的芯 Intel(1)时势造英雄
  14. java企业级快速开发平台jeeadminlte(jeesite大胖老师修改版)
  15. Android 错误总结
  16. 印度狂妄,华为和中兴在印度5G设备市场面临不确定性,三星却已占领市场
  17. MOM系统的主要功能有哪些?
  18. Android工程中imei和oaid的获取
  19. RAFT: Recurrent All-Pairs Field Transforms for Optical Flow
  20. 微信小程序地址导航功能实现详解

热门文章

  1. 关于@2x,@3x的区别及图片的绘制
  2. Matlab中 linprog函数的使用(求解线性规划)
  3. html引入luckySheet插件详细步骤(小白版)
  4. 高碳醇类乳状液消泡剂还是一如既往让泡沫感觉到绝望
  5. 解决Navicat在分辨率不同的主屏和分屏中显示内容数量问题
  6. 【论文解析】Encoding in Style: a StyleGAN Encoder for Image-to-Image Translation
  7. Adobe 数字出版解决方案 Digital Publishing Suite (Indesign 制作iPad电子书) 系列之四: 测试版的视频教程
  8. 手机内屏外屏有什么区别?
  9. PS快捷键 + 小知识
  10. 整理了Android面中常见的62个Java知识点...