我们正在尝试从连接到Linux盒的2个USB鼠标读取数据(该数据用于在机器人上进行测距/定位)。所以我们需要不断从每只鼠标读取它的移动量。问题是,当鼠标没有移动时,它不会发送任何数据,所以我们从中获取数据块的文件流以及程序无法进行odometry计算(这涉及时间测量的速度) 。在C++中设置ifstream超时?
是否有一种方法可以在输入流上设置超时(我们在C++中使用ifstream并从/ dev/input/mouse读取),以便我们能够知道鼠标何时不移动,而不是等待一个事件被接收?或者我们需要搞砸线程(arggh ...)?欢迎任何其他建议!
提前致谢!
+1,select()是要走的路,因为它避免了多线程引起的头痛。 – 2009-02-22 16:38:16