##函数原型
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
##参数
参数 | 描述 |
---|---|
fd | 文件描述符 |
buf | 读取的数据存放在buf指针指向的缓冲区 |
count | 读取的字节数 |
关于count:如果buf是一个字符数组名,那么count就用它的sizeof值。若buf是字符指针(字符串)则count用它的strlen值。 ##返回值 若果函数执行成功,返回读取的字节数,如果遇到EOF,则返回0。出错返回**-1**,并设置相应errno值。
- 当我指定要读取100个字节的时候,在读完30个字节后,遇到了EOF,那么这时立即返回30,接下来继续执行read函数的时候返回0。
- 从终端设备读,通常以行为单位,读到换行符就返回。
- 当出错时(即返回-1),如果errno的值是EINTR,表示遇到调用信号而中断了读取,那么我们可以再次尝试read。
##相关函数 |[[write|write]]|[[fread|fwrite-fread#fread]]| |----------|------------|