繁体   English   中英

在epoll中区分文件描述符类型

[英]Distinguishing file descriptor types in epoll

我有一个网络客户端库,该库可以读取/写入某些网络套接字。

有一个线程执行网络I / O,并响应来自公开客户端API的请求。 这些客户端API请求将从FIFO队列中弹出。

为了使线程能够收到请求,当我的主循环在epoll_wait上阻塞时,我想我应该使用一个eventfd,可以在epoll_ctl中添加它。

因此,问题是,如果epoll仅通过EPOLLIN进行通知,我如何区分推入FIFO队列的事件和网络I / O?

编辑:我应该补充一点,我不想将事件fd存储在数据成员中,而是使用ptr成员。 我想我需要将fd存储在该结构内的某个位置。

我是否可以简单地检查触发事件是否=我的事件文件描述符,并因此也从我的fifo中读取,如果不相等,那么它一定是网络事件? 这样安全吗? 还是有最佳实践方法。

是的,您必须比较文件描述符。 手册页中的示例将执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM