码迷,mamicode.com
首页 > 系统相关 > 详细

linux高级IO

时间:2017-06-04 10:47:12      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:ssi   struct   存储   size_t   内存   clu   连续   程序   数据存储   

背景:

      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

标签:ssi   struct   存储   size_t   内存   clu   连续   程序   数据存储   

原文地址:http://www.cnblogs.com/ThinkerNo-2/p/6939630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!