名称 描 述 例 子
stdin 标准输入 键盘
stdout 标准输出 屏幕
stderr 标准错误 屏幕
stdprn 标准打印机 LPT1端口
stdaux 标准串行设备 COM1端口
  • 1,printf 就是到标准输出(stdout),在屏幕上打印出一段字符串来。
freopen("test1.txt", "w", stdout); printf("test file\n");  //重定向
  • 2,sprintf 就是把格式化的数据写入到某个字符串中。返回值字符串的长度。

  • 3,fprintf 是用于文件操作。(在shell下stdin, stdout, 和stderr的文件描述符分别是0, 1和2,)

stdout – 标准输出设备(printf("…")) ,遇到\n或者缓存到1024才会输出,可以重定向,用 1> 或者直接 >。
( 因为标准输入输出是行缓存,使用setbuf函数设置缓存区缓存为无缓存,使用dup2重定向标准输出为文件描述符
setvbuf(stdout, NULL, _IOLBF, 0) != 0;
dup2(file_fd, STDOUT_FILENO)

stderr – 标准错误输出设备,没有缓存,直接输出,可以重定向,用 2> 。

两者默认向屏幕输出。

  原型: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 );返回值:若成功则返回输出字符数,若输出出错则返回负值。

在test.c中输入如下的代码

#include<stdio.h>
int  main()
{ fprintf(stderr,"stderr!\n"); fprintf(stdout,"stdout!\n"); printf("printf!\n"); return 0;
}

编译: gcc test.c -o test
执行:./test
输出:

stderr!
stdout!
printf!


若将输入重定向到一个temp.txt文件中,运行:./test>temp.txt 结果如下:

stderr!

查看temp.txt文件内容为:

stdout!

printf!


strerr是作为程序运行过程中的错误显示出来的,若想将它重写向到某文件中,需要运行如下命令:

./test 2>temp.txt

这样运行结果就为:

stdout!

printf!

查看temp.txt文件的内容是:

stderr!

参考链接

printf,fprintf(stdout,stderr),sprintf等的使用方法及区别相关推荐

  1. 各种输出函数的比较(printf/fprintf/sprintf/snprintf/vprintf/vfprintf/vsprintf/vsnprintf)

    对于程序猿来说,printf函数可以说是最熟悉的一个工具了.利用它可以将各类调试信息输出到指定的设备(比如串口)中,实现对程序运行状态的掌控和分析.不过,在实际的应用中,相信大家除了printf函数之 ...

  2. Unix——fprintf与stderr、stdout的使用

    先看一段程序 // 保存为fprintf.c #include <stdio.h>int main(){fprintf(stderr,"stderr on screen\n&qu ...

  3. C语言调试技巧:stdin,stdout,stderr

    stdin,stdout,stderr流 介绍 stdin,stdout,stderr是标准的输入输出流.其中,stdin是访问键盘输入,stdout和stderr分别是向终端输出数据. 关键函数 f ...

  4. python stdout stderr 一起输出_stdout和stderr标准输出的区别

    今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...

  5. java stdin 和stdout_stdin,stdout,stderr

    *标准输入输出流 #include extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; //man 1.stdin *0; // ...

  6. 利用stdin stdout stderr及POSIX-linux机制重定向写日志

    利用stdin stdout stderr及POSIX-linux机制重定向写日志 由open返回的文件描述符一定是该进程尚未使用的最小描述符.由于程序启动时自动打开文件描述符0.1.2,因此第一次调 ...

  7. stdin, stdout, stderr

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.pandas是什么? 二.使用步骤 1.引入库 2.读入数据 总结 前言 在通常情况下,Linux/UNIX每个程 ...

  8. STDOUT/STDERR重定向到ALOG中

    说下背景:现在众多Android开发者新添加的Google暂时并不会支持的功能,比如拨号上网,USB打印机等等,一般的实现方法就是静态编译Linux的相对开源库和程序(一般是C/C++语言),然后由A ...

  9. stdout stderr 重定向到文件

    1. stdout/stderr 重定向 1. stdout/stderr 重定向 1.1. dup/dup2 重定向到已打开文件 或 新文件 1.2. freopen 重定向到新文件 1.3. 命令 ...

最新文章

  1. 代码逻辑是分方法写好 还是在一个方法写好_这一团糟的代码,真的是我写的吗?...
  2. Java复习-线程之间的通信与同步
  3. 猿类如何捕获少女心--难以琢磨的try-catch
  4. STM32F4 HAL库开发 -- SPI Flash
  5. boost::fusion::traits用法的测试程序
  6. chromedriver 下载_centos7中配置python爬虫selenium+chromium+chromedriver环境
  7. 浪迹天涯的骨灰级开源爱好者——对话阿里云MVP吴晟
  8. pythonifnotnone_使用 if x is not None 还是if not x is None
  9. 38、C++ Primer 4th笔记,特殊工具与技术,嵌套类
  10. 自然数之和(leetcode 167)
  11. 计算机桌面常用图标,电脑常用软件图标 常用的电脑软件图标
  12. SPSS -正态检验
  13. 研究生学习生活日记——第二次组会
  14. AUTOSAR——AUTOSAR基础
  15. HTML5表白小程序
  16. 毛刺的危害及常见去毛刺方法技巧整理
  17. 乐天店铺网页制作、装修简要教程
  18. 汽车之家移动主App服务端架构变迁
  19. 概率论:魏布斯分布Weibull cumulative distribution function
  20. KERNEL_DATA_INPAGE_ERROR 蓝屏开机卡顿修复

热门文章

  1. 谈谈基于机器学习的编程到底比传统编程强在哪里?
  2. 《Windows 8 权威指南》——1.5 版本对比
  3. spider RPC入门指南
  4. linux下文本模式不能登录,图形可以登录
  5. c中调用python解释器
  6. Vue3中遇到问题:PostCSS plugin tailwindcss requires PostCSS 8 解决方案
  7. IDEA中Java项目如何新建JUnit5测试(Canary Test)
  8. PAT甲级1051 Pop Sequence:[C++题解]模拟栈、判断序列是否是合法的出栈序列
  9. 通信原理2习题课汇总(随机信号、信道、最佳接收)
  10. Linux 内核抓包功能实现基础(五) 常见问题解析