等待输入只需1秒,否则继续

时间:2012-01-27 23:07:58

标签: c ubuntu wait continue

我想在Ubuntu上用C实现这个算法:

等待一段时间从键盘接收输入,因此,通过获取可能的输入或随着时间的推移,程序应该继续。

我没有任何线索可以做到这一点! 先谢谢你。

2 个答案:

答案 0 :(得分:0)

请参阅手册了解alarm()signal()功能。您可以轻松地在不使用任何线程或进程的情况下超时任何代码。

答案 1 :(得分:0)

执行此操作的常用方法是使用select()poll()

struct pollfd fd = {STDIN_FILENO, POLLIN};
switch(poll(&fd, 1, 1)){
case -1:
     die("poll failed");
     break;
case 0:
     //timed out...
     break;
default:
     //read from stdin 
}