标准I/O函数库的缓冲
来源:互联网 发布:the history of linux 编辑:程序博客网 时间:2024/05/15 07:08
标准I/O函数库执行以下三类缓冲:
1,完全缓冲意味着只在出现下列情况时才发生I/O缓冲:缓冲区满,进程显示调用fflush,或者进程调用exit终止/标准I/O缓冲区的通常大小为8192字节。
2,行缓冲意味着只是在出现下列情况时才发生I/O:碰到一个换行符,进程调用fflush,或者进程调用exit终止
3,不缓冲意味着每次调用标准I/O输出函数都发生I/O
标准I/O库函数的大多数unix实现使用如下:
1,标准错误输出总是不缓冲,
2,标准输入和标准输出完全缓冲,除非它们指代终端设备,这种情况下它们进行行缓冲
1,完全缓冲意味着只在出现下列情况时才发生I/O缓冲:缓冲区满,进程显示调用fflush,或者进程调用exit终止/标准I/O缓冲区的通常大小为8192字节。
2,行缓冲意味着只是在出现下列情况时才发生I/O:碰到一个换行符,进程调用fflush,或者进程调用exit终止
3,不缓冲意味着每次调用标准I/O输出函数都发生I/O
标准I/O库函数的大多数unix实现使用如下:
1,标准错误输出总是不缓冲,
2,标准输入和标准输出完全缓冲,除非它们指代终端设备,这种情况下它们进行行缓冲
3,所有其他I/O都是完全缓冲,除非它们指代终端设备,这种情况下他们进行行缓冲
#include <stdio.h>int main (){char str[20];while(fgets(str,20,stdin)!=NULL){fputs(str,stdout);}return 0;}从标准输入流读入字符,然后从输出流输出。因为是在控制台输入输出,所以输入一行就会有输出。
#include <stdio.h>int main (){char str[20];while(fgets(str,20,stdin)!=NULL){fputs(str,stdout); fflush(stdout); }return 0;}调用fflush则会输出。
如果是输出到文件,则
#include <stdio.h>int main (){char str[20]; FILE *fp=fopen("output.txt","r"); while(fgets(str,20,stdin)!=NULL){fputs(str,fp); }return 0;}
则可以看到,输入几行字符后,文件中仍然没有内容。
#include <stdio.h>int main (){char str[20]; FILE *fp=fopen("output.txt","r"); while(fgets(str,20,stdin)!=NULL){fputs(str,fp); fflush(fp); }return 0;}则可以看到,输入一行,则会文件中多出一行。
- 标准I/O函数库的缓冲
- 标准I/O函数库
- 标准I/O缓冲
- 标准I/O缓冲
- 标准I/O库的缓冲机制
- 标准I/O的三种缓冲
- 标准I/O的三种缓冲
- Linux 标准I/O函数库
- Linux 标准I/O函数库
- 标准I/O缓冲机制
- 标准I/O库----缓冲
- 标准的I/O缓冲:全缓冲,行缓冲,无缓冲
- 标准I/O库与Unbuffered I/O(不带缓冲的I/O)函数
- 标准I/O缓冲:全缓冲、行缓冲、无缓冲
- 标准I/O缓冲:全缓冲、行缓冲、无缓冲
- 标准I/O缓冲:全缓冲、行缓冲、无缓冲 .
- 标准I/O缓冲:全缓冲、行缓冲、无缓冲
- 标准I/O的缓冲机制的实例讲解
- hdu题目分类......
- JS中parseInt()、random()及Math.cell()函数的学习
- cannot convert 'this' pointer from 'const cl
- KeyStone多核SoC工具套件: 单个平台满足所有需求
- c++编程遇到问题总结
- 标准I/O函数库的缓冲
- asp.net图表控件chartlet网址
- Java中-classpath和路径的使用
- 回调函数
- 漏洞基金
- 我最喜欢的10条编程语录
- 2012524比较早回家的一天
- LED的电磁干扰问题探讨
- 用Qt开发简单的浏览器(二)