1 是什么struct iovec 是 POSIX 中用于 分散/聚集 I/Oscatter/gather I/O 的结构体 定义在 sys/uio.h 中。它让一次系统调用就能从多个不连续的内存缓冲区读取或写入数据。#includesys/uio.hstructiovec{void*iov_base;// 缓冲区的起始地址size_tiov_len;// 该缓冲区的长度字节数};2 使用分散读 (scatter read)调用 readv(fd, iov, iovcnt) 聚集写 (gather write)调用 writev(fd, iov, iovcnt) 参数1 fd 文件描述符要 读取/写入 的目的地 参数2 iov const struct iovec * 类型 指向一个 struct iovec 数组的首元素 参数3 iovcnt iov 数组的元素个数 iov 数组中的每一个元素代表一个缓冲区 各个缓冲区之前地址可以不连续 iov_base 字段记录缓冲区起始地址 iov_len 字段记录缓冲区的长度 readv 或 writev 可以一次性处理 iov 数组中管理的所有缓冲区 而不必每个缓冲区都调用一次 系统函数 来读写 减少了数据在内核空间和用户空间之间的额外拷贝也减少了系统调用次数。