问题标签 [sendfile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unix - 写入套接字是 sendfile() 系统调用的任意限制吗?
序幕
sendfile()
是一个非常有用的系统调用,原因有两个:
首先,它比/ (或者/如果你更喜欢那个 jive)循环的代码更少。
其次,它比上述方法更快(更少的系统调用,实现可以在没有缓冲区的设备之间复制等......)。read()
write()
recv()
send()
更少的代码。更高效。惊人的。
在 UNIX 中,一切(大部分)都是一个文件。这是柏拉图理论与现实世界实践碰撞的丑陋领域。我知道套接字与驻留在某些设备上的文件根本不同。我还没有深入研究 Linux/*BSD/Darwin/任何操作系统实现的源代码,sendfile()
以了解为什么这个特定的系统调用仅限于写入套接字(特别是流式套接字)。
我只是想知道...
问题
sendfile()
允许目标文件描述符成为套接字以外的东西(如磁盘文件或管道)有什么限制?
linux - sendfile() 在两个 mmaped 文件上的使用 (linux)
可以使用 sendfile() linux 系统调用将部分文件从一个 mmaped 文件发送到另一个 mmaped 文件吗?
linux - linux write 和 sendfile 系统调用的区别
我正在编程网络服务器(C),它应该发送大文件。我的问题是:两个系统调用的主要区别是什么:write
和sendfile
. 是否sendfile
取决于套接字系统缓冲区的大小?我注意到write
经常写的比我要求的少。
例如,如果对一个文件有很多请求:我应该打开它,复制到内存中并使用write
,还是我可以sendfile
为每个客户做?
提前感谢所有答案。
terminology - 术语:与“零拷贝”相反?
我们正在对一些已转换为使用 sendfile() 的代码进行基准测试,该代码是 linux 零拷贝系统调用。sendfile() 取代的传统 read()/write() 循环的术语是什么?即,在我们的报告中,我想说“zerocopy 是 X 毫秒,而 ??? 是 Y 毫秒”。我应该使用什么词/短语?
c - 带有两个常规文件的 sendfile() 中的参数无效
我正在尝试测试sendfile()
Linux 2.6.32 下的系统调用,以在两个常规文件之间进行零复制数据。据我了解,它应该可以工作:从 2.6.22 开始,sendfile()
已经使用 实现splice()
了,输入文件和输出文件都可以是常规文件或套接字。
以下是 的内容sendfile_test.c
:
当我运行以下命令时:
输出是
而且跑步的时候
输出包含
我究竟做错了什么?
django - Django下载文件为空
我正在编写一个简单的函数,用于将某个文件从服务器下载到我的机器上。该文件由其 id 表示是唯一的。文件正确定位,下载完成,但下载的文件(虽然命名为服务器上的文件)是空的。我的下载功能如下所示:
我哪里错了?谢谢!
ruby-on-rails - send_file 只是发送一个空文件
我正在寻找一种下载 xml 文件的方法。我用:
但这总是给我下载一个空文件。该文件本身有 16 KB 的数据...
这是为什么?
前知
ruby-on-rails - rails 如何知道 send_file 何时完成
由于准备要下载的数据内容需要一些时间,所以我想在用户提交请求时显示一条消息“准备下载文件”
然后当文件准备好时,我使用 send_file 发送数据
完成后,我需要清除消息
非常感谢
c - 使用 sendfile(),是否可以判断 in_fd 何时处于 EOF?
阅读Linux 系统调用的手册页sendfile
,我想知道调用程序是否有可能知道何时in_fd
处于 EOF。据推测,这可以通过返回值 0 来表示,但这会导致返回值 0 的实际含义的问题。如果sendfile
是 like write
,则返回值 0 仅表示复制了 0 个字节。但是,如果sendfile
是 like read
,那么返回值 0 将意味着 EOF。必须事先知道要复制多少字节in_fd
才能out_fd
使用sendfile
?sendfile
返回0是什么意思?
linux - Linux sendfile 源码
我在哪里可以获得 sendfile 函数源?我在内核源代码中找不到它...