Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1906939
  • 博文数量: 211
  • 博客积分: 464
  • 博客等级: 下士
  • 技术积分: 3794
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-24 18:25
个人简介

阿弥陀佛

文章分类

全部博文(211)

文章存档

2020年(2)

2019年(3)

2018年(5)

2017年(6)

2016年(10)

2015年(9)

2014年(73)

2013年(90)

2012年(13)

分类: 架构设计与优化

2013-11-30 11:10:14

这两个函数一直都没有弄清楚,后来查了一下UNIX环境高级编程。里面真的是非常的全啊,很多对UNIX不解的问题,这里面都给出了解释。
该函数是用于在一次函数调用中将读、写多个非连续缓冲区,叫做scatter read 和 gather write。

iovec的结构体如下

点击(此处)折叠或打开

  1. struct iovec{
  2. void *ioc_base;
  3. size_t iov_len;
  4. };
调用多次write肯定比调用一次writev的CPU时间要长,当write的次数少的时候,调用writev并没有得到很好的效果。随着需要复制数据的增加,程序中复制缓冲区的开销也会增多。
阅读(4241) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

lambdacat2016-11-22 16:59:12

我没有看懂最后一段博主想要表达的意思,是要表达 writev 在写多个缓冲区时比多次调用 write 效率高,究其原因是调用次数少吗?