iovec结构体

iovec

基本介绍

包含在头文件#include <sys/uio.h>中的一个结构体
其定义如下

struct iovec
{
	void* iov_base; 	//指向数据的地址
	size_t iov_len; 	//数据的长度
};

其实就是一个指向一块内存的指针,同时携带了数据长度而已

干嘛用的

服务于以下两个函数

int readv(int fd, const struct iovec *vector, int count);
int writev(int fd, const struct iovec *vector, int count);
  • fd:要在其上进行读或是写的文件描述符。
  • vector:读或写所用的I/O向量元素,其实就是多个指针,指向多块内存。
  • count:要使用的向量元素个数,就是有几块内存。
  • 返回值:函数调用成功时返回读、写的总字节数,失败时返回-1并设置相应的errno。

readv

从文件描述符fd所指代的文件中读取一片连续的字节,然后将其分散放置到iov指定的缓存区中。这一散置动作从 iov[0] 开始,依次填满整个缓存区

writev

将iov所指定的所有缓存区中的数据拼接起来,然后以连续的字节序列写入文件描述符fd指代的文件中

posted @ 2023-08-11 23:46  悲伤鳄鱼吃面包  阅读(93)  评论(0编辑  收藏  举报