kbhit()实现程序启动时倒计时允许调试人员手动停止程序的运行方法

原理:利用ioctl(0,FIONREAD,&i)系统调用实现非阻塞式读入,如果有,则i为非零值,这样去检测是否有要求程序停止的请求,同时结合sleep()系统调用,来实现倒计时的去检测键盘是否有输入,如果超过时间没有检测到,则让程序正常运行,否则停止,让用户操作,是否手动启动程序,这种类型的I/O被称为轮询,就好像不断地询问设备状态,进而转化用户是否在手动操作。方便程序的发布与调试相结合。


int kbhit()
{
 int i;
 ioctl(0,FIONREAD,&i);
 return i;
}


int stop_autorun()

{

int sec = 5;

do

{

sec--;

printf("press enter key to stop autorun ...... %d\n",sec);

if(0 == sec)

{

return 0;

}

}while(!kbhit())

return 1;

}


int main()

{

if(stop_autorun())

{

return 0; //停止程序启用autorun的运行

}

autorun(); //让程序正常运行

return0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值