gpt4 book ai didi

c - 为什么 sendfile 不检查从输入描述符读取是否会阻塞?

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:36 28 4
gpt4 key购买 nike

作为服务器,我想从非阻塞客户端套接字读取数据,然后写入文件。

根据 sendfile 的手册页,如果 errno 设置为 EAGAIN,那么这仅表明,如果 output 文件描述符设置为非阻塞,则对 sendfile 的调用将 block 。

也就是说,sendfile 进行写入的底层调用会阻塞。

有没有办法使用 sendfile 以便在读取阻塞时 errno 为 EAGAIN?

最佳答案

当然。

select() 库函数与您的读取描述符一起使用,您可以通过errno 检查EWOULDBLOCK。如果已设置,则读取将阻塞。

您无法通过检查 sendfile() 调用中的某些内容来查看读取是否会阻塞。

关于c - 为什么 sendfile 不检查从输入描述符读取是否会阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47598955/

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