Linux fprintf的用法
一、fprintf 函数描述
fprintf其作用是格式化打印,也叫格式化输出,可以指定输出到一个流文件中,即相输出流中写入数据。fprintf()函数根据指定的格式(format),向输出流(stream)写入数据(argument)。fprintf( )会根据参数format 字符串来转换并格式化数据,然后将结果输出到参数stream 指定的文件中,直到出现字符串结束('\0')为止。
函数声明:
- int fprintf (FILE* stream, const char*format, [argument])
- stream-- 这是指向 FILE 对象的指针,该 FILE 对象标识了输出数据流。
- format-- 这是 C 字符串,包含了要被写入到流 stream 中的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。
- format 标签属性是%[flags][width][.precision][length]specifier
- [argument]:附加的参数列表
其中,Linux的输出数据流stream提供了5种标准的流:
stderr的优先级高于stdout,在输出调试信息的时候,优先使用fprintf(stderr,...),或者某个指定的文件流fprintf(some_stream,...)。
二、shell 输出重定向
需要说明的是stdin并不一定来自键盘,stdout也并不一定显示在屏幕上,他们都可以是重定向到磁盘文件或其他设备上。
shell下stdin,stdout和stderr的文件描述符分别是0,1和2。
2.1 采用 > 进行输出重定向,采用>>进行追加方式重定向
$./run > output.log #每次清空
$./run >> output.log #每次在outout.log末尾追加
运行./run后的正常日志会输出到output.log文件中,此时错误信息仍然会输出到屏幕。
2.2 分别输出正常日志和错误日志,2> 代表stderr重定向
$./run > output.log 2> error.log
$./run > output.log 2>&1
三、程序中输出重定向
#从文本输入
freopen("data.in","r",stdin); #从屏幕输入
freopen("/dev/console","r",stdin);#输出到文件
freopen("data.out","w",stdout);
if(freopen("err.log",w,stderr)==NULL)
{fprintf(stderr,"error redirecting stderr\n");
}#关闭重定向
fclose(stdin);
fclose(stdout);
Linux fprintf的用法相关推荐
- Linux下wine用法
Linux下wine用法 下面是wine的使用方法. 一.要在Linux下运行,wine是必不可少的,所以,请将wine安装到你的系统里. 二.将你的Windows所在的分区加载到某个目录.(本文假定 ...
- linux md5sum 的用法(转)
MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度 ...
- Linux export 命令用法
Linux export 命令用法 Linux export 命令用于设置或显示环境变量. 在 shell 中执行程序时,shell 会提供一组环境变量.export 可新增,修改或删除环境变量,供后 ...
- Linux epoll的用法
Linux epoll的用法 epollfd_create函数 #include <sys/epoll.h>int epoll_create (int __size) 参数 含义 __si ...
- Linux中find用法整理
一.Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} /; ...
- Linux cat 命令用法
cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从键盘创建一个文件. $ cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为 ...
- c语言strTrimed函数用法介绍,linux type命令用法_转
在脚本中type可用于检查命令或函数是否存在,存在返回0,表示成功:不存在返回正值,表示不成功. $ type foo >/dev/null 2>&1 || { echo > ...
- linux signal用法,Linux 信号 signal 用法详解及注意事项
Linux 信号 signal 用法详解及注意事项 1) SIGHUP 本信号在用户终端连接 (正常或非正常) 结束时发出, 通常是在终端的控 制进程结束时, 通知同一 session 内的各个作业, ...
- linux下rdesktop用法
我自己用的参数rdesktop -g workarea -D -r clipboard:PRIMARYCLIPBOARD -a 16 -x lan 192.168.1.2 rdesktop是Linux ...
最新文章
- python compileall 打包发布
- 复习1 - String,StringBuilder,StringBuffer的执行效率区别
- oracle 9i aix 迁移,Oracle 9i 在AIX上的安装 (转)
- WCF 第五章 行为 以属性为服务操作行为暴露一个参数检测器
- MyBatis关键配置-创建会话工厂
- HDU - 4253 Two Famous Companies(二分+最小生成树)
- python端口被占用_端口被占用怎么解决
- Customer Report这个Fiori应用必须和CRM耦合在一起么
- /UI5/IF_UI5_REP_PERSISTENCE - why I cannot deploy app to GM6
- dhcp服务器显示主机名,linux – 当我没有在dhclient.conf中定义一个时,我的DHCP服务器如何知道我的机器的主机名?...
- php mysql练手_ThinkPHP5练手Demo实战
- bzoj2460 [BeiJing2011]元素 贪心+线性基
- Go语言学习之8 goroutine详解、定时器与单元测试
- java 图片怎么设置抗锯齿,图片变形的抗锯齿处理方法
- Hamilton哈密顿最短路径(二进制状态压缩)
- 目标跟踪 SiamRPN++(SiamRPN++:Evolution of Siamese Visual Tracking with Very Deep Networks)
- notepad集成jsonviewer 查看json
- IOS收起键盘的几种办法(摘抄自唐巧《iOS开发进阶》)
- 再见,安卓开发权威指南
- java.lang.Long常用方法
热门文章
- Javascript弹出div层
- [导入]使用SqlCommand对象执行存储过程
- 【STC15库函数上手笔记】3、外部中断
- windows组件向导里没有internet 信息服务(iis) 的解决办法
- 在dos下运行.exe程序(C++)
- [react] react中的setState执行机制是什么呢?
- 前端学习(3090):vue+element今日头条管理-参数传递
- 前端学习(3078):vue+element今日头条管理-分页总页码的实现
- 前端学习(2982):一文理解undefine
- [html] 如何阻止屏幕旋转时自动调整字体的大小?