如何创建等待用户输入特定秒数的 C 程序?在时间限制之后,程序关闭,有或没有输入。请提供示例代码,使用 fork() 和 sleep()。对不起,我是新来的。
哇。对不起大家。这不是我的帖子。好像有人用了我的账号。而且我不能删除它。
执行此操作的正确方法是选择 STDIN 进行读取,并将超时设置为您想要的多长时间。Select 将返回 STDIN 以供读取或不返回任何内容,这表示超时。
如果您只想让程序坐下来等待...进行循环检查输入,请使用将时钟的开始时间保存在变量中。更新结束时间。如果时间(此处为 5 秒)已过期,请检查循环。
begin_t = clock();
// do-loop
/* read user input*/
end_t = clock();
// while( end_t - begin_t < 5 * CLOCKS_PER_SEC )
在我看来,使用 fork() 和 sleep() 并不是实现这种结果的最佳方式。最好使用 select() 调用,它允许等待超时的数据。
有关一些示例代码,请参阅select() 上的 unix 手册页。