Linux下的setbuf函数,关闭缓冲区?
来源:互联网 发布:c删除数组中的一个元素 编辑:程序博客网 时间:2024/06/05 17:27
Linux下不支持fflush刷新缓冲区,所以我们想到了setbuf函数,这随之而来的各种问题和小伙伴探讨之后得出如下结论
首先,网上有很多不同的言论,有的说setbuf只是刷新缓冲区,有的说会关闭缓冲区,众说纷纭,经过我们的测试和查找资料,如果你将stdin/stdout指向NULL,setbuf会关闭你的缓冲区,而不仅仅是刷新(查询度娘和man手册)。
例如:setbuf(stdin,NULL);
因为stdin相当于一股输入流,你把它指向空,那么就不仅仅是刷新了,他会关闭你的输入缓冲区,而从你的输入流里读数据。而输入流是行缓冲,但也会保存你的每一个字符(例如你的回车和空格,就像你的输入缓冲区有时候在cin的错误输入下,也会保存回车,如果你的输入流不存回车,那么他从哪里拿的回车呢?关于这个问题,具体大家可以看我的上一篇博客这里写链接内容 )
综上所述,setbuf会将缓冲区更改为你指定的内存,而当你将stdin,stdout指向NULL,他会关闭 输入/输出缓冲区,而更改为从输入/输出流里去拿数据,而这两者的区别:效率 肯定是有缓冲区更高,输入流是行缓冲,而且这两者的的具体大小可能不同,其他表现出来的具体使用时并没有什么区别
阅读全文
0 0
- Linux下的setbuf函数,关闭缓冲区?
- 对于setbuf函数的解释
- C语言setbuf()函数:把缓冲区与流相关联
- setbuf () 函数
- setbuf setvbuf函数的理解(转)
- C语言setbuf 函数的介绍
- setbuf关闭流缓冲
- setbuf()关闭缓冲
- 关闭 linux下的umask( )函数、setsid( )函数
- C语言文件读写操作中缓冲区问题和setbuf函数详解
- C语言文件读写操作中缓冲区问题和setbuf函数详解
- C语言文件读写操作中缓冲区问题和setbuf函数详解
- C语言文件读写操作中缓冲区问题和setbuf函数详解
- 在vim定义关闭所有其它缓冲区的函数
- setbuf函数详解
- setbuf函数 详解
- setbuf函数详解
- setbuf函数使用注意事项
- hdu_2002 计算球体积
- 进程地址空间与虚拟存储空间区别
- 用construct2做小游戏
- hdu_2003 求绝对值
- 算法期中1000. 分组
- Linux下的setbuf函数,关闭缓冲区?
- IT领域——摩尔定律会不会失效
- 学习:知识过载与疲于奔命
- Longest Common Prefix
- 2017/11/12 _Java概括
- Mongodb--TTL索引(Mongodb自动删除数据)
- ICMP差错报告报文
- css33D效果转换
- selenium 解决 SSL问题