文件IO函数和标准IO库的区别

文件IO函数和标准IO库的区别,第1张

标准IO与文件IO 的不同之处,先来说说标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。标准IO库处理很多细节。例如缓存分配,以优化长度执行IO等。标准的IO提供了三种类型的缓存。(1)全缓存:当填满标准IO缓存后才进行实际的IO *** 作。 (2)行缓存:当输入或输出中遇到新行符时,标准IO库执行IO *** 作。 (3)不带缓存:stderr就是了。

文件IO:文件IO称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I/O—— *** 作系统提供的基本IO服务,与os绑定,特定于linix或unix平台。

到目前为止的所有例子中,我们一直使用也称为Unix I/O——包括read、write这两个函数及它们的变体(recv、send等等)——的函数执行I/O。这些函数围绕描述符(descriptor)工 作,通常作为Unix内核中的系统调用实现

执行I/O的另一个方法是使用标准I/O函数库(standard I/O library)。这个函数库由ANSI C标 准规范,意在便于移植到支持ANSI C的非Unix系统上。标准I/O函数库处理我们直接使用Unix I/O 函数时必须考虑的一些细节,譬如自动缓冲输入流和输出流。不幸的是,它对于流的缓冲处理可能导致我们同样必须考虑的一组新的问题。APUE第5章详细讨论了标准I/O函数库,[Plauger 1992]给出并讨论了标准I/O函数库的一个完整的实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11610554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存