05.07 readv 和 writev
这被称为 Scatter-Gather I/O。

其中,struct iovec 的定义如下:
struct iovec {
void *iov_base; /* Start address of the buffer */
size_t iov_len; /* Number of bytes to transfer to/from buffer */
};
这样 readv 和 writev 就能一次完成多个缓冲区的读取/写入。最重要的特征是:和多次调用 read/write 相比, readv/writev 操作具有原子性!
类似地,还有 preadv 和 pwritev,连 lseek 的过程都一起加进来变得原子化了。