【发布时间】:2021-01-18 17:54:30
【问题描述】:
我想让我的程序休眠一段时间。但我也希望如果按下回车,程序就会唤醒。
clock_t t;
int sleep_time=10;
t=clock();
while(1){
int temp=clock()-t;
double time_now=(double)(temp)/CLOCKS_PER_SEC;
if(time_now>=sleep_time){
break;
}
if(getchar()=='\n'){
break;
}
}
但是这个程序会等待输入,如果输入没有给出它不会中断 我该怎么做。
【问题讨论】:
-
使用
sleep(),这里是它的链接linux.die.net/man/3/sleep -
在 Linux 等 posix 系统上,您可以使用 select 等待输入可用。
select也有超时。调用select会使进程进入休眠状态,直到任一输入可用或超时到期(实际上也有被信号中断的情况)。