APUE学习: 第五章, 标准I/O库
来源:互联网 发布:淘宝隐形降权一周恢复 编辑:程序博客网 时间:2024/06/05 01:05
一, fread, fwrite 与read, write的区别: 缓冲
- fread/fwrite是对 read, write的一层封装, 即加了一个缓冲区, 其目的在于尽量减少read/write的调用次数
- 缓冲区分类:
- 全缓冲: 就是缓冲区满才flush
- 行缓冲: 一行一次flush
- 无缓冲
- 特点:
- 会有一个例程自动地进行周期性的flush
- 一般来说标准输出, 标准输入是行缓冲的, 标准错误无缓冲, 普通磁盘文件是全缓冲
- 缓冲会造成一次额外的内存拷贝, 即由 内核–>用户 变成了 内核–>缓冲区–>用户, 但同时缓冲可以将多次琐碎的读写操作适当减少, 所以结论是: 如果能控制好每次read/write的大小(一般最合适的是pagesize), 直接用read/write效率最高
二, 其他函数
- freopen 重新打开一个FILE*
- fdopen: 根据fd创建一个FILE*
- flush: 刷新缓冲区
- fileno: 取一个FILE*的fd'
- fclose: 关闭FILE
- getc, fgetc, get_char: 每次读字符
- fgets, gets, 每次读一行字符
- ugetc: 将一个字符重新塞回FILE流中
- ferror, feof: fget等函数的返回值不区分读到eof还是error, 因此需要用这两个函数来区分
- ftell 返回当前offset
- fseek 移动offset
- rewind 将文件offset移到初始
- dprintf: pringtf的文件描述符版本
- tmpname: 生成一个合法的临时文件名, 一般为 /tmp/XXX
- fmemopen: 打开一段内存流, 即将内存封装成FILE*, 在需要分行读入时比较方便
0 0
- APUE学习: 第五章, 标准I/O库
- APUE-第五章学习-标准I/O库-习题
- apue 第五章 标准i/o库
- apue学习笔记(第五章 标准I/O)
- APUE读书笔记-第五章 标准I/O库
- 《APUE》笔记-第五章-标准I/O库
- apue学习第九天——标准I/O库(第五章)
- APUE学习笔记3——第五章——标准I/O库
- APUE学习:标准I/O库
- 【APUE】标准I/O库
- APUE 标准I/O库
- APUE------标准I/O库
- apue:标准I/O库
- AUPE学习第五章------标准I/O库
- APUE学习笔记——标准I/O库
- apue 第五章 stand I/O
- 第五章 标准I/O库
- 第五章 标准I/O库
- APUE学习: 第四章, 文件和目录
- 常用Gradle依赖汇总
- Spring 官方文档第十六章笔记(2):DispatcherServlet
- Java中的堆、栈和常量池
- hdoj 1217 Arbitrage 【最短路径】【floyd】
- APUE学习: 第五章, 标准I/O库
- Android_新建animation动画res/anim目录
- netstat Recv-Q和Send-Q
- DesiredCapabilities内容详解--Appium服务关键字
- Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作
- 你真的知道如何定义性能要求么?
- C语言技巧: 实现面向对象
- Linux kernel 3.10内核源码分析--slab原理及相关代码
- 泛型技术的三个学习阶段(侯捷)-转