readv 和writev 函数用于在一次函数调用中读、写多个非连续的缓冲区。
1. #include<sys/uio.h>
ssize_t readv(int fd,const struct iovec *iov,int iovcnt);
ssize_t writev(int fd,const struct iovec *iov,int iovcnt);
struct iovc{
void *iov_base; /* starting address of buffer */
size_t iov_len; /* size of buffer */
}
writev 函数从缓冲区中聚集输出数据的顺序是:iov[0]、iov[1]、、、
writev 返回输出的字节数总数应该等于所有缓冲区长度之和。