缓冲区(Buffer):
-
就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区。
-
优点:
-
1、减少实际的物理读写次数
-
2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数
-
read函数:
ssize_t read(int fd, void *buf, size_t count);
参数:
fd:文件描述
buf:存放数据的缓冲区
count:缓冲区大小
-
返回值:
0:读到文件末尾
-
-
成功:读到的字节数
-
失败:-1,设置 errno
-
-1:并且errno=EAGIN或EWOULDBLOCK,说明不是read失败,而是read在以非阻塞方式读一个设备文件(网络文件),并且文件无数据。
-
write函数:
ssize_t write(int fd, const void *buf, size_t count);
参数:
fd:文件描述
buf:存放数据的缓冲区
count:缓冲区大小
-
返回值:
-
成功:写入的字节数
-
失败:-1,设置 errno
-
文件描述:
PCB进程控制块:本质 结构体。
成员:文件描述符表。
文件描述符:0/1/2/3/4。。。。/1023 表中可用的最小的。
0-STDIN_FILENO
1-STDOUT_FILENO
0-STDERR_FILENO