首页 > 代码库 > linux高级IO
linux高级IO
背景:
write函数把内存中的数据写入文件描述符,通常这些数据是内存中的连续区域,如果我们应用程序需要把内存中多个非连续区域的数据写入文件描述符,那么需要多次调用write函数,如果文件描述符是socket,那么需要发送多个数据包。这种情况下,write函数效率比较低。
writev将多个数据存储在一起,将驻留在两个或更多的不连接的缓冲区中的数据一次写出去。
writev函数声明:
#include <sys/uio.h>
ssize_t writev( int fd, const struct iovec *iov, int cnt );
iov是一组iovec结构的指针,iovec结构如下:
struct iovec {
char *iov_base; /*基本地址指针,指向缓冲区*/
size_t iov_len; /*指定缓冲区长度*/
};
readv函数将数据读入内存中多个不连续缓冲区.
linux高级IO
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。