首页 > 学院 > 开发设计 > 正文

read/write函数

2019-11-06 10:01:11
字体:
来源:转载
供稿:网友

read函数

1.函数原型

#include<unistd.h>size_t read(int fd, void* but, size_t nbytes);返回值:成功返回读到的字节数,如果在文件末尾返回0,失败返回-1.

2.如果读到字节数少于需求的字节数的情况

1.当读入普通文件的时候,如果在读取出要求的字节数之前到达了文件的末尾。比如:文件里面还有30个字节没有读区,但是我们要求读100个,这次读取返回30,下次返回0(end of file).2.当从终端设备读取的时候。正常,一次读取一行3.当从网络读取的时候。在网络里面的buffer可能会使返回的字节总数少于要求数。4.当从pipe或者FIFO读取的时候。,如果pipe里面的字节数少于需求的,那么只会返回可提供的。5.当从记录设备里面读取的时候。一些记录设备,比如磁带,每次会返回一个记录。6.当被信号中断时,会返回已经被读入的数据。

3.其它事项

读操作从文件当间偏移量开始,在成功返回之前,文件当前偏移量增加读入的字节数。

write函数

1.函数原型

#include<unistd.h>ssize_t write(int fd, const void* but, size_t nbytes);函数返回值:成功返回写入的字节数,失败返回-1.返回值通常等于nbytes,不然的话,会产生一个错误。通常引起write error的原因是磁盘空间满了,或者操作超出了文件大小限制。对于一个普通文件,写操作从文件当前偏移量开始,如果如果O_APPEND在文件打开时被设置了,在写操作之前将文件当前偏移量设置为文件末尾。在写入成功之后,文件偏移量增加写入的字节数。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表