标准 IO 测试 标准输出,输入,出错缓冲大小;全缓冲文本流大小
例子:测试缓冲区大小
#include <stdio.h> int main(int argc, const char *argv[])
{
//标准输入大小,没有输入内容时,标准输入缓冲是测不出大小的
getchar(); //在终端获取一个字符,标准输入内没有内容时,大小为0,存在数据时才会测试出其大小
printf("stdin_size:%d\n",stdin->_IO_buf_end - stdin->_IO_buf_base); //标准输出大小
printf("2\n");//先输出一个标准输出,才可以测试大小
printf("stdout_size: %d\n",stdout->_IO_buf_end - stdout->_IO_buf_base); //标准出错
printf("stderr_size: %d\n",stderr->_IO_buf_end - stderr->_IO_buf_base); //全缓冲
//文件流,创建一个文件流 ,追加方式写入时默认文件中存在内容
FILE *fp = NULL;
// 以 w 方式每次打开,先把文本流清空在向里面写入数据
if((fp = fopen(argv[], "w")) != NULL) //参数agv[1] 表示在程序运行时从终端输入 文件名
{
//把文件的大小输入到文件中,开始文本中并没有数据查看文件时,其内容为0,写入数据后在通过printf打印其大小就会显示4096
fprintf(fp,"%d\n",fp->_IO_buf_end - fp->_IO_buf_base);
printf("fp_size: %d\n",fp->_IO_buf_end - fp->_IO_buf_base);//终端会打印4096 ,这两行调换位置,文本内容会是0,但是先打印的缓冲大小也为0
} return ;
}

标准 IO 测试 标准输出,输入,出错缓冲大小;全缓冲文本流大小的更多相关文章
- 标准 IO 测试 可以打开多少流
#include <stdio.h> #include <string.h> #include <errno.h> //trerror(errno) int mai ...
- 标准 IO fread 与 fwrite 的使用(可以实现二进制流的读写)
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); size_t fwrite(const void ...
- 为什么需要标准IO缓冲?
(转)标准I/O缓冲:全缓冲.行缓冲.无缓冲 标准I/O库提供缓冲的目的是尽可能地减少使用read和write调用的次数.它也对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的 ...
- 第十三篇:带缓冲的IO( 标准IO库 )
前言 在之前,学习了 read write 这样的不带缓冲IO函数. 而本文将讲解标准IO库中,带缓冲的IO函数. 为什么要有带缓冲IO函数 标准库提供的带缓冲IO函数是为了减少 read 和 wri ...
- 带缓冲的IO( 标准IO库 )
前言 在之前,学习了 read write 这样的不带缓冲IO函数.而本文将讲解标准IO库中,带缓冲的IO函数. 为什么要有带缓冲IO函数 标准库提供的带缓冲IO函数是为了减少 read 和 writ ...
- C5 标准IO库:APUE 笔记
C5 :标准IO库 在第三章中,所有IO函数都是围绕文件描述符展开,文件描述符用于后续IO操作.由于文件描述符相关的操作是不带缓冲的IO,需要操作者本人指定缓冲区分配.IO长度等,对设备环境要求一定的 ...
- java开发知识IO知识之输入输出流以及文件
目录 java开发知识IO知识之输入输出流以及文件 一丶流概述 二丶输入流讲解 InputStream类. 1. 输入流以及类层次结构 2.文件操作.使用输入流读取 三丶输出流 OutputStrea ...
- linux标准IO缓冲(apue)
为什么需要标准IO缓冲? LINUX用缓冲的地方遍地可见,不管是硬件.内核还是应用程序,内核里有页高速缓冲,内存高速缓冲,硬件更不用说的L1,L2 cache,应用程序更是多的数不清,基本写的好的软件 ...
- 标准IO的缓冲问题
在看APU时,第8章进程时, #include <stdio.h> #include <unistd.h> ; char buf[] = "a write to st ...
随机推荐
- CSS新特性(3D转换,perspective(透视),transfrom-style(子元素是否开启三维环境))
1. 三维坐标系(里面的值不能省略,没有就写 0 ) x 轴:水平向右 注意:x 右边是正值,左边是负值 y轴: 垂直向下 注意:y 下面是正值,上面是负值 z轴:垂直屏幕 注意: ...
- java nio socket实例
Server端代码: public class NioServer { //通道管理器 private Selector selector; //获取一个ServerSocket通道,并初始化通道 p ...
- 2018-2-13-win10-UWP-Hmac
title author date CreateTime categories win10 UWP Hmac lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17: ...
- linux常用命令-1系统相关命令
hostname #计算机名 passwd #修改密码 reboot #重启 shutdown –r now #立刻重启(root用户使用) shutdown –r 10 #过10分钟自动重启(roo ...
- 图像元数据编辑软件:MetaImage使用流程讲解
MetaImage是唯一的macOS工具,允许在处理所有类型的标签格式时编辑,读取和写入元数据.在时尚的界面中导航,您可以更改图像元数据的所有内容,并对数百张相似的照片进行相同的编辑. https:/ ...
- 【leetcode】538. Convert BST to Greater Tree
题目如下: Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the orig ...
- SQL 删除
SQL Delete 语句(删除表中的记录) DELETE语句用于删除表中现有记录. SQL DELETE 语句 DELETE 语句用于删除表中的行. SQL DELETE 语法 DELETE FRO ...
- 【架构】spring framework核心框架体系结构
Spring官方文档,用的版本为4.3.11版本. 一.引用官方文档 2.2.1核心集装箱 所述核心容器由以下部分组成spring-core, spring-beans,spring-context, ...
- 赋能时空云计算,阿里云数据库时空引擎Ganos上线
随着移动互联网.位置感知技术.对地观测技术的快速发展,时空信息已从传统GIS行业渗透到大众应用及各行各业.从静态POI(兴趣点)到APP位置信息,从导航电子地图到车辆行驶轨迹,从卫星影像到三维城市建模 ...
- phpstorm使用说明
1.phpstorm软件可以直接断点调试php代码.具体配置方法参考 http://blog.csdn.net/qq4551091/article/details/55258664 就可以了,不过只要 ...