gpt4 book ai didi

linux - linux write 和 sendfile 系统调用的区别

转载 作者:可可西里 更新时间:2023-11-01 11:47:58 24 4
gpt4 key购买 nike

我在编程 Web 服务器 (C),它应该发送大文件。我的问题是:两个系统调用的主要区别是什么:writesendfilesendfile 是否取决于套接字系统缓冲区的大小?我注意到 write 经常写得比我要求的少。

例如,如果对一个文件有很多请求:我应该打开它,复制到内存中并使用write,还是我可以为每个客户端执行sendfile

提前感谢所有的回答。

最佳答案

请阅读sendfile(2)。

sendfile() 在一个文件描述符和另一个文件描述符之间复制数据。因为这种复制是在内核中完成的,所以 sendfile()read(2) 和 write(2) 的组合更有效,这将需要将数据传入和传出用户空间。

关于任何write/read/senfile调用的返回值不保证整个数据 block 被写入/读取/发送

关于linux - linux write 和 sendfile 系统调用的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2743698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com