Pho*_*ong 2 c sockets nonblocking
在我的程序中,我需要在非阻塞套接字中检查sendfile()操作的完成情况.怎么办?
检查文档并在互联网上搜索后,我无法找到如何做到这一点
它的工作方式非常类似于send()
:如果套接字设置为O_NONBLOCK
,操作将阻塞,则sendfile()
立即返回并设置errno
为EAGAIN
.在这种情况下,你必须等待一段时间,然后再试一次(也许使用一个功能,如select()
知道什么时候准备好).
还要记住,即使它成功,也可能无法在单个函数调用中写入您请求的所有字节.始终检查返回值:
如果传输成功,则返回写入out_fd的字节数.出错时,返回-1,并正确设置errno.
您还可以查看sendfile()的手册页
归档时间: |
|
查看次数: |
2953 次 |
最近记录: |