UNIX环境高级编程之第5章:标准I/O库-习题
5.1 setbuf和setvbuf可以用来更改缓冲的类型,可以使用setbuf函数打开或关闭缓冲机制。为了带缓冲进行I/O,参数buf必须指向一个长度为BUFSIZ的缓冲区。通常在此之后该流就是全缓冲,但是如果和该流和终端设备相关,那么改成行缓冲。为了关闭缓冲,将buf设置为NULL。
void setbuf(FILE *restrict fp, char *restrict buf);
int setvbuf(FILE *restrict fp, char *restrict buf, int mode, size_t size);
主要判断一下是不是终端设备,设置mode
size就设置成BUFSIZ就好
5.2 fgets函数读入数据,直到行结束或缓冲区满(当然会留一个字节存放null字节)。同样,fputs只负责讲缓冲区的内容输出直到一个null字节,而并不考虑缓冲区是否包含换行符。所以并没有影响。
5.3 当printf没有输出任何字符时,如printf(""),则函数返回0
5.4 当程序有EOF,再移植问题上考虑 系统是有符号还是无符号字符类型的,因为EOF为0。
5.5 fflush()是工作在流上的,它仅仅冲洗缓存从应用程序到操作系统
fsync工作在底层,它告诉操作系统冲洗缓存到物理设备
总之fsync是再文件描述符上工作,它不管文件流和它的缓存,文件流是在一个应用程序中,文件描述符实在操作系统内核中进行操作
所以说应该先调用fflush将内存缓冲区的数据加载到cpu中,然后用fsync将内核缓冲载入到磁盘
5.6 当程序交互运行时候,标准输入和标准输出均为行缓冲方式,每次调用fgets时候标准输出设备将自动冲洗。所有不需要fflush
UNIX环境高级编程之第5章:标准I/O库-习题相关推荐
- UNIX 环境高级编程总结——第五章 标准I/O 库
5.1 流和 FILE 对象 对于标准 I/O 库,它们的操作则是围绕流(stream)进行的. 当打开一个流时,标准 I/O 函数 fopen 返回一个指向 FILE 对象的指针. 为了引用一个流, ...
- UNIX环境高级编程之第4章:文件和文件夹-习题
4.1 stat函数是尾随符号链接的,所以用stat替换lstat不会显示符号链接的信息 4.2 在一个目录下先再shell中输入umask shell进程再进行创建文件的操作.其权限抖都会被屏蔽 4 ...
- unix环境高级编程之 read与write 函数详解
学习记录:unix环境高级编程之 read 与write 函数详解 备注:本博文非本人所写,本人觉得此文讲的非常地道通俗易懂,所以摘录在此以方便以后再次查看 read函数从打开的设备或文件中读取数据 ...
- UNIX环境高级编程源码
UNIX环境高级编程源码 一.下载源码 利用wget命令下载源码,源码地址http://apuebook.com/src.3e.tar.gz 可以在服务器的根目录下创建文件夹,mkdir 1.mkdi ...
- 《Unix环境高级编程》Note——第一章基础知识
文章目录 第一章 Unix基础知识 1.引言 2.Unix体系结构 3.登录 4.文件和目录 5.输入和输出 6.程序和进程 7.出错处理 8.用户标识 9.信号 10.时间值 11.系统调用和库函数 ...
- UNIX环境高级编程(屏幕打印和inet_ntoa输出异常问题)
一.来回在屏幕和文件之间打印 在网上没找到在屏幕和文件来回打印的方法,翻了下UNIX环境高级编,里面有个freopen用于在一个指定的流上打开一个指定的文件,如果要将标准输出打印到文件,需要调用该函数 ...
- python flask高级编程之restful_('Python Flask高级编程之RESTFul API前后端分离精讲',),全套视频教程学习资料通过百度云网盘下载...
资源详情 r n t某课网好评度100%的Python Flask高级编程之RESTFul API前后端分离精讲 r n t t t第1章 随便聊聊 r n t t t聊聊Flask与Django,聊 ...
- 《UNIX环境高级编程(第3版)》——1.7 出错处理
本节书摘来自异步社区<UNIX环境高级编程(第3版)>一书中的第1章,第1.7节,作者:[美]W. Richard Stevens , Stephen A.Rago著,更多章节内容可以访问 ...
- unix环境高级编程 pdf_UNIX系统编程宝典,每一本都值得程序员珍藏
这几本UNIX系统编程宝典,重印无数次,几代程序员都视如珍宝的几本书,小编在出版圈里快十年了,见证了这本书图灵版.异步社区版的出版.营销,对这套书倾注了一定的感情.今天继续分享给你们,好书总会有人还不 ...
- 开发日记-20190822 关键词 读书笔记《Unix环境高级编程(第二版)》《掌控习惯》DAY 2
Preface 话说,昨天开始尝试着去改变自己,从基础的习惯开始,11:30准时睡觉,平时差不多12:30才睡觉.按理说,比平时早了一个小时睡觉吧,然后我就把闹钟提前了45分钟,想着还能比平常多睡15 ...
最新文章
- 与HTTP关系密切的协议:IP、TCP、DNS
- 微软(中国)CTO韦青:人工智能是拿来用的,不是拿来炒的
- app.listen(3000)与app是不一样的
- Navicat 连接MySQL数据库 报错2059 - authentication plugin 'caching_sha2_password'的解决办法...
- MS SQL backup database的俩个参数
- 干货 | 携程异地多活-MySQL实时双向(多向)复制实践
- 生成对抗网络(GAN)的统计推断
- DataGirdView 常用操作
- python核心编程笔记chapter 3
- Css学习总结(5)——CSS常见布局方式
- 0917 词法分析程序(java版)
- HR图像添加运动焦散模糊【Matlab】
- python离线录音转文字软件_如何将语音文件转换为文字?这5款软件轻松做到!...
- 项目实战:Qt5/C++:QT象棋【初版】
- 【uniapp】 H5微信授权登录
- 任志强:房价至少还要涨十多年 北京房价不会跌
- search:笔记本插上耳机还是外放?(Dell win10)
- VBA写入公式(4):数字转大写金额公式
- Mybatis学习一
- mac 命令行 解压7z文件_命令行压缩解压7z