readv和writev函数
readv 和 writev 函数用于在一次函数调用中读、写多个非连续缓冲区。有时也将这两个函数称为散布读和聚集写。
#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);
这两个函数的第二个參数是指向 iovec 结构数组的一个指针:
struct iovec {
    void  *iov_base;    /* Starting address */
    size_t iov_len;     /* Number of bytes to transfer */
};
iov 数组中的元素数由 iovcnt 说明。
writev以顺序iov[0]、iov[1]至iov[iovcnt-1]从缓冲区中聚集输出数据。writev返回输出的字节总数。通常它应等于全部缓冲区长度之和。
readv则将读入的数据按上述相同顺序散布到缓冲区中,readv总是先填满一个缓冲区,然后再填下一个,readv返回读到的总字节数。假设遇到文件结尾,已无数据可读。则返回0。
readv和writev函数的更多相关文章
- 高级I/O之readv和writev函数
		
readv和writev函数用于在一次函数调用中读.写多个非连续缓冲区.有时也将这两个函数称为散布读(scatter read)和聚集写(gather write). #include <sys ...
 - c++ 网络编程(五) LINUX下  socket编程 多种I/O函数 -以及readv和writev函数用法
		
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9614056.html 一.多种I/O函数 前言:之前我们讲的数据传输一般Linux上用writ ...
 - UNIX网络编程读书笔记:readv和writev函数
		
这两个函数类似于read和write,不过readv和writev允许单个系统调用读入到或写出自一个或多个缓冲区.这些操作分别称为分散读(scatter read)和集中写(gather write) ...
 - Unix系统编程():分散输入和集中输出(Scatter-Gather IO):readv和writev
		
分散输入和集中输出(Scatter-Gather IO):readv和writev 请问这个v又代表什么? readv和writev系统调用分别实现了分散输入和集中输出的功能. #include< ...
 - readv 和 writev
		
Unix 系统已经长时间支持名为 readv 和 writev 的 2 个系统调用. 这些 read 和 write 的"矢量"版本使用一个结构数组, 每个包含一个缓存的指针和一个 ...
 - linux readv 和 writev
		
Unix 系统已经长时间支持名为 readv 和 writev 的 2 个系统调用. 这些 read 和 write 的"矢量"版本使用一个结构数组, 每个包含一个缓存的指针和一个 ...
 - readv与writev
		
[root@bogon mycode]# cat writev.c #include<stdio.h> #include<string.h> #include<unist ...
 - Linux中文件I/O函数
		
一.lseek函数 每个打开文件都有一个与其相关联的“当前文件偏移量”.它通常是一个非负整数,用以度量从文件开始处 计算的字节数.通常,读.写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数 ...
 - 第六章 高级I/O函数
		
第六章 高级I/O函数 6.1 pipe函数 即管道函数,用于进程间的通信. #include<unistd.h> int pipe(int fd[2]); // fd:filedes / ...
 
随机推荐
- 整理部分JS 控件 WEB前端常用的做成Jsp项目,方便今后直接用
			
整理部分JS 控件 WEB前端常用的做成Jsp项目,方便今后直接用 最近又没时间了,等用时间了,再加入更多的, 源码下载: http://download.csdn.net/detail/liang ...
 - IE7.JS解决IE兼容性问题方法
			
转自:http://code.google.com/p/ie7-js/ 使IE5,IE6兼容到IE7模式(推荐) <!--[if lt IE 7]> <script src=&quo ...
 - NETTY 编码器介绍
			
1. 背景 1.1. 编解码技术 通常我们也习惯将编码(Encode)称为序列化(serialization),它将对象序列化为字节数组,用于网络传输.数据持久化或者其它用途. 反之,解码(Decod ...
 - 《Java4Android视频教程》学习笔记(三)
			
一:抽象类 接口 1.使用abstract修饰抽象类 抽象函数 2.一个类中有一个或者多个抽象函数,必须定义为抽象类 3.抽象类可以不含有抽象函数 4.抽象类不可以生成对象 tip:如果一个代码在语意 ...
 - JAVA FILE or I/O学习 - 补充CopyFiles功能
			
public class CopyFiles { public static void main(String[] args) { CopyFiles copyFiles = new CopyFile ...
 - linux c in common use function reference manual
			
End User License Agreement guarantees or warranties,大战前得磨刀!!!!! Tips:C Funcs Chk header Modules!
 - android UI跨线程操作
			
android应用程序也是单线程程序,主线程为UI线程. android 线程是非安全的,即不要在子线程中更新 UI. public class MasterActivity extends Acti ...
 - 设计模式入门之桥接模式Bridge
			
Abstraction:抽象部分的父类,定义须要实现的接口.维护对实现部分的引用,从而把实现桥接到Implementor中去 Implementor:实现部分的接口 RefinedAbstractio ...
 - linux内核之网络协议栈
			
https://www.ibm.com/developerworks/cn/linux/l-ntflt/
 - Hibernate学习之映射关系
			
一.Hibernate多对一关联映射:就是在“多”的一端加外键,指向“一”的一端. 比如多个学生对应一个班级,多个用户对应一个级别等等,都是多对一关系. 1.“多”端实体加入引用“一”端实体的变量及g ...