2010-05-10 118 views
1

我正在使用epoll和pthreads在C++中为Linux编程应用程序(客户端/服务器),但我不知道如何处理connect()调用在连接描述符列表中的新连接与epoll_wait()正在运行(边缘触发),如何才能做到这一点?...我可以使用一个虚拟文件描述符来触发一个事件和等待的景象?,或者一个简单的电话connect()可以触发事件? ...客户端与epoll的连接

对不起我的英文不好...

回答

1

是的,你可以使用另一个文件描述符,这只是为唤醒您的epoll_wait()循环。使用pipe()来创建文件描述符。将管道读数末尾添加到您的epoll列表中,并在想要唤醒时写入一个字节到写入结束。读取方可以读取该字节并丢弃它。

+0

谢谢,我将使用'pipe()'旧内核版本和'eventfd()'到新的内核版本(我已经在手册页中找到它)。 adew – 2010-05-12 17:17:52