Skip to content

Latest commit

 

History

History
23 lines (20 loc) · 1 KB

read.md

File metadata and controls

23 lines (20 loc) · 1 KB

##函数原型

#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]]| |----------|------------|