-
鸿鹄论坛上的华为认证h35-211-hcnp-access network题库讨论了I/O效率这一主题
资源介绍
3.8 write函数
用w r i t e函数向打开文件写数据。
#include
ssize_t write(int f i l e d e s, const void *b u f f, size_t n b y t e s) ;
返回:若成功为已写的字节数,若出错为- 1
其返回值通常与参数n b y t e s的值不同,否则表示出错。w r i t e出错的一个常见原因是:磁盘已写
满,或者超过了对一个给定进程的文件长度限制 (见7 . 11节及习题1 0 . 11 )。
对于普通文件,写操作从文件的当前位移量处开始。如果在打开该文件时,指定了
O _ A P P E N D选择项,则在每次写操作之前,将文件位移量设置在文件的当前结尾处。在一次
成功写之后,该文件位移量增加实际写的字节数。
3.9 I/O的效率
程序3 - 3只使用r e a d和w r i t e函数来复制一个文件。关于该程序应注意下列各点:
• 它从标准输入读,写至标准输出,这就假定在执行本程序之前,这些标准输入、输出已
由s h e l l安排好。确实,所有常用的UNIX shell都提供一种方法,它在标准输入上打开一个文件
用于读,在标准输出上创建(或重写)一个文件。
• 很多应用程序假定标准输入是文件描述符 0,标准输出是文件描述符 1。本例中则用两个
在< u n i s t d . h >中定义的名字S T D I N _ F I L E N O和S T D O U T _ F I L E N O。
• 考虑到进程终止时,U N I X会关闭所有打开文件描述符,所以此程序并不关闭输入和输出
文件。
• 本程序对文本文件和二进制代码文件都能工作,因为对 U N I X内核而言,这两种文件并
无区别。
程序3-3 将标准输入复制到标准输出
第 3章 文 件 I/O 4 1
下载