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指代的文件中