Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编程网络服务器(C),它应该发送大文件。我的问题是:两个系统调用的主要区别是什么:write和sendfile. 是否sendfile取决于套接字系统缓冲区的大小?我注意到write经常写的比我要求的少。
write
sendfile
例如,如果对一个文件有很多请求:我应该打开它,复制到内存中并使用write,还是我可以sendfile为每个客户做?
提前感谢所有答案。
请阅读sendfile(2)。
sendfile()在一个文件描述符和另一个文件描述符之间复制数据。因为这种复制是在内核中完成的,所以比(2) 和(2)sendfile()的组合更有效,后者需要在用户空间和用户空间之间传输数据。readwrite
sendfile()
read
关于返回值任何write//调用不保证整个数据块被写入/读取/read发送senfile
senfile