readv和writev函数「建议收藏」

readv和writev函数

大家好,又见面了,我是全栈君。

readvwritev 函数用于在一次函数调用中读、写多个非连续缓冲区。有时也将这两个函数称为散布读聚集写

#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。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116015.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月27日 上午11:00
下一篇 2022年1月27日 下午12:00


相关推荐

  • centos 5开机出现PCI错误:Not using MMCONFIG

    centos 5开机出现PCI错误:Not using MMCONFIG

    2021年8月5日
    87
  • 截断 四舍五入 进位php,php 四舍五入 进位

    截断 四舍五入 进位php,php 四舍五入 进位PHP 取整数函数常用的四种方法 1 直接取整 舍弃小数 保留整数 intval 2 四舍五入取整 round 3 向上取整 有小数就加 1 ceil 4 向下取整 floor 一 intval 对变数转成整数型态 intval 如果是字符型的会自动转换为 0 intval 3 24159 3intval 3 74159 3intval ruesin 0 二

    2026年1月22日
    3
  • DSSM & Multi-view DSSM TensorFlow实现

    DSSM & Multi-view DSSM TensorFlow实现LearningDeepStructuredSemanticModelsforWebSearchusingClickthroughData以及其后续文章AMulti-ViewDeepLearningApproachforCrossDomainUserModelinginRecommendationSystems的实现Demo。1.数据D

    2025年8月19日
    6
  • Navicat 15 激活补丁破解方法

    Navicat 15 激活补丁破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    134
  • python打印99乘法表的3种方式

    python打印99乘法表的3种方式用 python 打印九九乘法表 代码如下 一 使用双重 for 循环 九九乘法表 foriinrange 1 10 forjinrange 1 i 1 print x t format j i i j end print 二 使用双重 while 循环 九九乘法表 i 1whilei lt 9 j 1while j lt i j 的大小是由

    2026年3月16日
    2
  • java c++ 学哪个_c++和java区别 学哪个比较好

    java c++ 学哪个_c++和java区别 学哪个比较好尽管Java是基于C++的,但是相比之下,Java是一种更纯粹的面向对象程序设计语言。Java的运用方面比c++要广一些。Java主要包括Web开发、移动互联开发等,应用场景较多,市场的需求量上来看Java程序员的市场需求量更大一些。Java和C++有什么不同1、Java源码会先经过一次编译,成为中间码,中间码再被解释器解释成机器码。对于Java而言,中间码就是字节码(、class),而解释器在…

    2022年7月9日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号