博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5.13 标准I/O的替代软件
阅读量:7178 次
发布时间:2019-06-29

本文共 917 字,大约阅读时间需要 3 分钟。

5.13 标准I/O的替代软件

标准I / O库并不完善。K o r n和Vo〔1 9 9 1〕列出了它的很多不足之处—某些属于基本设计,但是大多数则与各种不同的实现有关。

在标准I / O库中,一个效率不高的不足之处是需要复制的数据量。当使用每次一行函数fgets和fputs时,通常需要复制两次数据:一次是在内核和标准I / O缓存之间(当调用read和write时),第二次是在标准I / O缓存和用户程序中的行缓存之间。快速I / O库〔AT&T 1990a中的fio ( 3 )〕避免了这一点,其方法是使读一行的函数返回指向该行的指针,而不是将该行复制到另一个缓存中。H u m e〔1 9 8 8〕报告了由于作了这种更改, g r e p ( 1 )公用程序的速度增加了2倍。

K o r n和Vo〔1 9 9 1〕说明了标准I / O库的另一种代替版:sfio。这一软件包在速度上与fio相近,通常快于标准I / O库。sfio也提供了一些新的特征:推广了I / O流,使其不仅可以代表文件,也可代表存储区;可以编写处理模块,并以栈方式将其压入I / O流,这样就可以改变一个流的操作;较好的异常处理等。

K r i e g e r, Stumm和U n r a u〔1 9 9 2〕说明了另一个代换软件包,它使用了映照文件—mmap函数,我们将在1 2 . 9节中说明此函数。该新软件包称为ASI(Alloc Stream Interface)。其程序界面类似于U N I X存储分配函数(malloc, realloc和f r e e,这些将在7 . 8节中说明)。与sfio软件包相同,A S I使用指针力图减少数据复制量。

许多标准IO库实现可用于C函数库中,这种C函数库是为内存较小的系统(例如嵌入式系统)设计的。这些实现对于合理内存要求的关注超过对可移植性、速度以及功能性等方面的关注。这类函数库的两种实现是:uClibc C库( )和newlibc C库()。

转载于:https://www.cnblogs.com/shaoguangleo/archive/2011/10/09/2805989.html

你可能感兴趣的文章
OSChina 娱乐弹弹弹——将程序猿表白方式进行到底!
查看>>
OSChina 周四乱弹 —— 人生处处是深坑
查看>>
OSChina 周日乱弹 —— 如何处理学生早恋
查看>>
OSChina 周日乱弹 ——什么姑娘是女!王!大!人!
查看>>
OSChina 周二乱弹 —— 以后我偷小鱼干养你
查看>>
Limu:JavaScript的那些书
查看>>
自定义线程---无界队列作为承装任务
查看>>
Scala 学习笔记
查看>>
Ipython的 Debug 函数
查看>>
基于虹软sdk,java实现人脸识别(demo)
查看>>
Android模拟器入门
查看>>
ZOJ_1094/hdoj_1082_Matrix Chain Multiplication_...
查看>>
1040_As easy as A+B
查看>>
java8如何反射得到方法参数变量的名字
查看>>
Spring Data Redis 让 NoSQL 快如闪电 (1)
查看>>
git库detached heads问题处理
查看>>
String操作性能提升一
查看>>
服务器DNS选择的问题
查看>>
Centos Mysql 编译安装调试
查看>>
Midamble Allocation by layer 1
查看>>