Jos*_*siP 3 sockets linux sendfile
我编程webserver(C),它应该发送大文件.我的问题是:两个系统调用的主要区别是什么:write和sendfile.是否sendfile取决于套接字系统缓冲区的大小?我注意到write经常写的少于我要求的.
例如,如果对一个文件有很多请求:我应该打开它,复制到内存并使用write,或者我可以sendfile为每个客户端做什么?
提前感谢所有答案.
请阅读sendfile(2).
sendfile()复制一个文件描述符和另一个文件描述符 因为这种复制是在内核中完成的,sendfile()所以比read(2)和write(2)的组合更有效,这需要与用户空间之间传输数据.
关于返回值,任何write/ read/ senfile调用都不保证写入/读取/发送整个数据块
| 归档时间: |
|
| 查看次数: |
1037 次 |
| 最近记录: |