printf,fprintf(stdout,stderr),sprintf等的使用方法及区别
名称 | 描 述 | 例 子 |
---|---|---|
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等的使用方法及区别相关推荐
- 各种输出函数的比较(printf/fprintf/sprintf/snprintf/vprintf/vfprintf/vsprintf/vsnprintf)
对于程序猿来说,printf函数可以说是最熟悉的一个工具了.利用它可以将各类调试信息输出到指定的设备(比如串口)中,实现对程序运行状态的掌控和分析.不过,在实际的应用中,相信大家除了printf函数之 ...
- Unix——fprintf与stderr、stdout的使用
先看一段程序 // 保存为fprintf.c #include <stdio.h>int main(){fprintf(stderr,"stderr on screen\n&qu ...
- C语言调试技巧:stdin,stdout,stderr
stdin,stdout,stderr流 介绍 stdin,stdout,stderr是标准的输入输出流.其中,stdin是访问键盘输入,stdout和stderr分别是向终端输出数据. 关键函数 f ...
- python stdout stderr 一起输出_stdout和stderr标准输出的区别
今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...
- java stdin 和stdout_stdin,stdout,stderr
*标准输入输出流 #include extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; //man 1.stdin *0; // ...
- 利用stdin stdout stderr及POSIX-linux机制重定向写日志
利用stdin stdout stderr及POSIX-linux机制重定向写日志 由open返回的文件描述符一定是该进程尚未使用的最小描述符.由于程序启动时自动打开文件描述符0.1.2,因此第一次调 ...
- stdin, stdout, stderr
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.pandas是什么? 二.使用步骤 1.引入库 2.读入数据 总结 前言 在通常情况下,Linux/UNIX每个程 ...
- STDOUT/STDERR重定向到ALOG中
说下背景:现在众多Android开发者新添加的Google暂时并不会支持的功能,比如拨号上网,USB打印机等等,一般的实现方法就是静态编译Linux的相对开源库和程序(一般是C/C++语言),然后由A ...
- stdout stderr 重定向到文件
1. stdout/stderr 重定向 1. stdout/stderr 重定向 1.1. dup/dup2 重定向到已打开文件 或 新文件 1.2. freopen 重定向到新文件 1.3. 命令 ...
最新文章
- 代码逻辑是分方法写好 还是在一个方法写好_这一团糟的代码,真的是我写的吗?...
- Java复习-线程之间的通信与同步
- 猿类如何捕获少女心--难以琢磨的try-catch
- STM32F4 HAL库开发 -- SPI Flash
- boost::fusion::traits用法的测试程序
- chromedriver 下载_centos7中配置python爬虫selenium+chromium+chromedriver环境
- 浪迹天涯的骨灰级开源爱好者——对话阿里云MVP吴晟
- pythonifnotnone_使用 if x is not None 还是if not x is None
- 38、C++ Primer 4th笔记,特殊工具与技术,嵌套类
- 自然数之和(leetcode 167)
- 计算机桌面常用图标,电脑常用软件图标 常用的电脑软件图标
- SPSS -正态检验
- 研究生学习生活日记——第二次组会
- AUTOSAR——AUTOSAR基础
- HTML5表白小程序
- 毛刺的危害及常见去毛刺方法技巧整理
- 乐天店铺网页制作、装修简要教程
- 汽车之家移动主App服务端架构变迁
- 概率论:魏布斯分布Weibull cumulative distribution function
- KERNEL_DATA_INPAGE_ERROR 蓝屏开机卡顿修复
热门文章
- 谈谈基于机器学习的编程到底比传统编程强在哪里?
- 《Windows 8 权威指南》——1.5 版本对比
- spider RPC入门指南
- linux下文本模式不能登录,图形可以登录
- c中调用python解释器
- Vue3中遇到问题:PostCSS plugin tailwindcss requires PostCSS 8 解决方案
- IDEA中Java项目如何新建JUnit5测试(Canary Test)
- PAT甲级1051 Pop Sequence:[C++题解]模拟栈、判断序列是否是合法的出栈序列
- 通信原理2习题课汇总(随机信号、信道、最佳接收)
- Linux 内核抓包功能实现基础(五) 常见问题解析