-1

在我的应用程序中,创建了一个 Tun 接口,并且该进程在 select(2) 循环中继续使用 read(2) 读取关联的 fd。但是,当我在应用程序中调试问题时,我发现在某些时候对 Tun 文件描述符的 read(2) 操作可能会返回零。这可能吗?它可能发生的条件是什么?

提前致谢。木质的

4

1 回答 1

0

这是阅读(2)手册页中的信息,请单击此处

返回值

成功时,返回读取的字节数(零表示文件结束),文件位置提前该数字。如果此数字小于请求的字节数,则不是错误;这可能会发生,例如因为现在实际可用的字节数较少(可能是因为我们接近文件结尾,或者因为我们正在从管道或终端读取),或者因为 read() 被中断信号。出错时,返回 -1,并适当设置 errno。在这种情况下,未指定文件位置(如果有)是否更改。

于 2018-11-23T06:01:26.147 回答