【发布时间】:2014-12-22 03:51:03
【问题描述】:
我必须弄清楚如何编写一个循环但不能使用 CTRL-C 5 秒退出的程序,但 5 秒后我可以使用 CTRL-C 结束程序。我一直在阅读系统调用和其他内容,但我不知道从哪里开始。这是确切的说明,如果有人能指出我正确的方向。谢谢。
编写一个 C 程序,该程序使用系统调用创建一个循环,并且在五秒钟内不能被控制 C 杀死。当它开始时,它会打印“我已经开始循环并且不能用 ^C 杀死。 . 。”然后它每秒都会打印一条消息,上面写着“Still looping . . 。” 5 秒后,让控制 C 终止循环并显示消息“我仍在循环,但我可以用 ^C 终止...”每秒显示一次,直到用户终止它。
【问题讨论】:
-
您可以使用sigaction 来捕获Ctrl-C(SIGINT)。可能在 sigaction 上 example code。
-
一种有趣的方法是将中断字符设置为前 5 秒的 control-T,然后将其设置回 control-C。