read函数-数据流图到模块结构图的直接转换方法

时间:2024-07-12 01:23:28
【文件属性】:

文件名称:read函数-数据流图到模块结构图的直接转换方法

文件大小:5.82MB

文件格式:PDF

更新时间:2024-07-12 01:23:28

APUE UNIX

3.7 read函数 用r e a d函数从打开文件中读数据。 #include ssize_t read(int f i l e d e s, void *b u f f, size_t n b y t e s) ; 返回:读到的字节数,若已到文件尾为 0,若出错为- 1 如r e a d成功,则返回读到的字节数。如已到达文件的尾端,则返回 0。 有多种情况可使实际读到的字节数少于要求读字节数: • 读普通文件时,在读到要求字节数之前已到达了文件尾端。例如,若在到达文件尾端之 前还有3 0个字节,而要求读1 0 0个字节,则 r e a d返回3 0,下一次再调用r e a d时,它将返回0 (文件 尾端)。 • 当从终端设备读时,通常一次最多读一行 (第11章将介绍如何改变这一点 )。 • 当从网络读时,网络中的缓冲机构可能造成返回值小于所要求读的字节数。 • 某些面向记录的设备,例如磁带,一次最多返回一个记录。 读操作从文件的当前位移量处开始,在成功返回之前,该位移量增加实际读得的字节数。 P O S I X . 1在几个方面对此函数的原型作了更改。其经典定义是: int read(int f i l e d e s, char *b u f f, unsigned n b y t e s) ; 首先,为了与ANSI C一致,其第二个参数由char *改为void *。在ANSI C中,类型void *用于表 示类属指针。其次,其返回值必须是一个带符号整数( s s i z e _ t),以返回正字节数、0(表示文 件尾端)或-1(出错)。最后,第三个参数在历史上是一个不带符号整数,以允许一个 1 6位的 实现可以一次读或写至 6 5 5 3 4个字节。在1990 POSIX.1标准中,引进了新的基本系统数据类型 4 0 U N I X环境高级编程


网友评论