stderr,stdout,a.txt缓冲区别
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<error.h>
#include<errno.h>
#include<unistd.h>
#include<strings.h>
#include<stdbool.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<fcntl.h>
int main(int argc,char **argv)
{
fputs("to stdout",stdout);//行缓冲,只有字符串后面加油‘\n’,才会显示到屏幕
fputs("to stderr",stderr);//无缓冲,直接显示到屏幕
FILE *fp = fopen("a.txt","w");//全缓冲,一般为4k,windows为1k..
if(fp == NULL)
{
fprintf(stderr,"fopen()%s failed:%s","a.txt",strerror(errno));
exit(0);
}
fputs("to a.txt",fp);
pause();
fflush(fp);//强制刷新全缓冲。
// return 0;
}
----------------------------------------------
几条刷新注意:
关于标准IO缓冲区
================================
1,不缓冲(标准出错流stderr)
1.1 一旦缓冲区中有数据,立即刷新。
2,全缓冲(普通文件)
2.1 一旦把缓冲区填满,立即刷新(做练习:检测全缓冲的大小)
2.2 调用fflush()强制刷新。
2.3 程序正常退出时,立即刷新。
2.3.1 在main函数中return
2.3.2 在任意地方调用exit()/_exit()/_Exit()
2.3.3 在最后一条线程中调用pthread_exit()
2.4 调用fclose()关闭文件时,立即刷新。
2.5 调用setvbuf()/setbuf()更改缓冲区类型时,立即刷新。
3,行缓冲(标准输出流stdout)
3.1 一旦把缓冲区填满,立即刷新(做练习:检测全缓冲的大小)
3.2 调用fflush()强制刷新。
3.3 程序正常退出时,立即刷新。
3.3.1 在main函数中return
3.3.2 在任意地方调用exit()/_exit()/_Exit()
3.3.3 在最后一条线程中调用pthread_exit()
3.4 调用fclose()关闭文件时,立即刷新。
3.5 调用setvbuf()/setbuf()更改缓冲区类型时,立即刷新。
3.6 一旦遇到'\n'
stderr,stdout,a.txt缓冲区别的更多相关文章
- 【Python】【Head First Python】【chapter1】2 - sys.stdout 和 print 的区别
sys.stdout 和 print 的区别 首先,通过 help(print) 得到print内建函数的参数 Help on built-in function print in module bu ...
- stdout 与 stderr 的区别
stdout 与 stderr 的区别 一直没有注意 stdout 与 stderr 的区别,以为只是不同的描述方式.看来不是这样的. stdout 主要处理的是使用者输出 stderr 主要处理的错 ...
- 标准输出中stderr和stdout的区别
一.首先介绍一下三者printf,sprintf,fprintf的功能 1,printf就是标准输出,在屏幕上打印出一段字符串来. 2,sprintf就是把格式化的数据写入到某个字符串中.返回值字符串 ...
- stderr和stdout详细解说
今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...
- stderr 和stdout
今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...
- stderr和stdout(printf、fprintf、sprintf)(转)
本文转自:http://www.cnblogs.com/zhangyabin---acm/p/3203745.html 先区分一下:printf,sprintf,fprintf. 1,printf就是 ...
- stderr和stdout详细解说(转)
今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...
- C语言中的stdin,stdout,stderr[转]
我们在写C程序时经常遇到printf(),fprintf(),perror(),这些东西到底有什么作用.说到这不得不提及stdin,stdout,stderr.想想,我们在用C去写文件时的操作,Fil ...
- 五、stdout,stdoin和stderr
stdout,stdin和stderr分别是标准输出流.标准输入流和标准错误流,当一个用户进程被创建的时候,系统会自动为该进程创建这三个数据流,默认情况下这三个流是在终端上表现出来的.可以使用fpri ...
随机推荐
- screen乱码问题
在 .screenrc下设置: defencoding gbk encoding gbk gbk detatch+reattach后,设置失效,这时可以直接用命令来配置: ctrl+a :defenc ...
- springcloud干活之服务消费者(feign)
springcloud系列文章的第三篇 本章将继续讲述springcloud的消费者(feign) Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端. ...
- Python scrapy------分类获取美团整站数据
欢迎联系讨论:qq:1170370113 以下是我们获取美团页面的城市信息 获取到了城市信息以后我们可以进行分类保存,以便于后续能够分类获取数据 获取我们需要城市的景区的所有相关id并且进行保存 最后 ...
- Vue下路由History mode导致页面无法渲染的原因
用 Vue.js + vue-router 创建单页应用,是非常简单的.使用 Vue.js ,我们已经可以通过组合组件来组成应用程序,当你要把 vue-router 添加进来,我们需要做的是,将组件( ...
- parse_str() 函数把查询字符串解析到变量中。
定义和用法 parse_str() 函数把查询字符串解析到变量中. 注释:如果未设置 array 参数,则由该函数设置的变量将覆盖已存在的同名变量. 注释:php.ini 文件中的 magic_quo ...
- DEDECMS系统安全篇之移data目录到Web根目录以外听语音
http://jingyan.baidu.com/article/ad310e80aeb0971849f49e8e.html 主要三个步骤: 1./include/common.inc.php 2.还 ...
- Jupyter notebook入门
Jupyter notebook入门 [TOC] Jupyter notebook 是一种 Web 应用,能让用户将说明文本.数学方程.代码和可视化内容全部组合到一个易于共享的文档中. Jupyter ...
- log4j:ERROR Category option " 1 " not a decimal integer.错误解决
log4j.properties 的配置文件中: log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }: ...
- svn checkout The XML response contains invalid XML
svn checkout 报错:The XML response contains invalid XML 待解决? ---目前没有找到好的解决方法,svn数据库中存的log入手应该可以,有时间再去看 ...
- scrapy_ItemLoader
什么是Itemloader? 一种容器,实现直白高效字段提取 直接赋值取值的方式,会出现一下几个问题 代码量一多,各种css和xpath选择器,充斥整个代码逻辑,没有规则,不利于维护 对于一个字段的预 ...