sendfile函数「建议收藏」

sendfile函数「建议收藏」sendfile函数在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了内核缓冲区和用户缓冲区之间的数据拷贝,效率很高,这被称为零拷贝。sendfile函数的定义如下:#includessize_tsendfile(intout_fd,intin_fd,off_t*offset,size_tcount);in_fd参数是待读出内容的文件

大家好,又见面了,我是你们的朋友全栈君。

sendfile函数在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了内核缓冲区和用户缓冲区之间的数据拷贝,效率很高,这被称为零拷贝。sendfile函数的定义如下:

#include <sys/sendfile.h>
ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count);

in_fd参数是待读出内容的文件描述符,out_fd参数是待写入内容的文件描述符。offset参数指定从读入文件流的哪个位置开始读,如果为空,则从in_fd文件描述符所指的文件的文件偏移位置开始读,并且sendfile会更新in_fd所指文件的文件偏移。offset如果不为空,则指定从读入文件的哪个位置开始读,当sendfile执行完后,offset返回下一个要读的字节位置,注意,offset不为空不更新in_fd所指文件的文件偏移。count参数指定在文件描述符in_fd和out_fd之间传输的字节数。sendfile成功时返回传输的字节数,失败则返回-1并设置errno。该函数的man手册明确指出in_fd必须是一个支持类似mmap函数的文件描述符,即它必须指向真实的文件,不能是socket和管道;在Linux2.6.33之前,out_fd必须是一个socket,而从Linux2.6.33之后,out_fd可以是任何文件。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 对于三极管饱和状态的理解「建议收藏」

    对于三极管饱和状态的理解「建议收藏」对于三极管饱和状态的理解https://zhidao.baidu.com/question/172715750.html问题来源对于三极管饱和状态的理解三极管如工作在饱和状态也就是开的状态,那么就是双结正偏这是书上的解释我自己的理解是这样的:饱和状态和从放大状态转变过来的,极电结和发射结正偏是结果,而不是原因就是说,三极管首先工作在放大状态,极电结反偏,发射结正偏当基级电流增大时,一直增大到三极管的非线性区(这里指的是饱和区),注意,在这一瞬间偏置情况并未改变,也就是说依然是极电结反偏,

    2022年9月11日
    5
  • A标签去掉下划线

    A标签去掉下划线A标签去掉下划线 a:link{text-decoration:none;color:blue} a:active{text-decoration:blink} a:hover{text-decoration:underline;color:red} a:visited{text-decoration:none;color:green}

    2022年6月7日
    32
  • mysql将yyyy转换_Mysql时间格式转换

    mysql将yyyy转换_Mysql时间格式转换对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6日期和时间类型。这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内:mysql>SELECTsomethingFROMtableWHERETO_DAYS(NOW())-TO_DAYS(date_col)<=30;DAYOFWEEK(date)返回…

    2022年6月19日
    47
  • idea2021.8.2 激活码【永久激活】[通俗易懂]

    (idea2021.8.2 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~BI7JCUH1TG-eyJsaWNlb…

    2022年3月22日
    63
  • linux load average,Linux Load Average详解

    linux load average,Linux Load Average详解定义在Linux,以及其他类Unix的系统中,常用该系统正在进行的运算工作来衡量该系统的系统负荷(SystemLoad)。一个完全空闲的系统,它的负荷(SystemLoad)标记为0;每一个正在运行或者正在等待CPU资源的进程,会导致平均负荷(SystemLoad)加1。所以,如果一个系统的负荷是4,就是说有4个进程正在使用,或者正在等待CPU资源。因为系统负荷(SystemLoad)是…

    2022年7月17日
    17
  • “Word在试图打开文件时遇到错误。请尝试下列方法:* 检查文档或驱动器的文件权限。* 确保有足够的内存和磁盘空间。* 用文件恢复转换器打开文件。”问题!…[通俗易懂]

    “Word在试图打开文件时遇到错误。请尝试下列方法:* 检查文档或驱动器的文件权限。* 确保有足够的内存和磁盘空间。* 用文件恢复转换器打开文件。”问题!…[通俗易懂]Word在试图打开文件时遇到错误。请尝试下列方法:*检查文档或驱动器的文件权限。*确保有足够的内存和磁盘空间。*用文件恢复转换器打开文件。如下图:让同事在他们自己电脑上,都是可以打开的,就我的电脑不能打开,网上搜索了一系列方法,如改后缀名、用word工具修复、下载office补丁安装都不能解决。后面无意中找到的解决方法,与有类似经历…

    2022年5月13日
    131

发表回复

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

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