我有一个 C++ 控制台应用程序,它使用、 、open() [O_RDWR | O_NONBLOCK]
和write()
来处理设备文件。也可以调用取消当前操作。在任何给定时间,只有一个用户可以使用设备。select()
read()
close()
ioctl()
我需要提出具有 libsigc++ 信号的 C++ 类,当设备提供数据时会触发这些信号。
问题:当调用select()
应用程序在等待数据时变得无响应。如何使其响应 - 通过调用select()
工作线程?如果是这样 - 工作线程将如何与主线程通信?也许我应该调查一下boost::asio
?