-3

如何创建等待用户输入特定秒数的 C 程序?在时间限制之后,程序关闭,有或没有输入。请提供示例代码,使用 fork() 和 sleep()。对不起,我是新来的。

哇。对不起大家。这不是我的帖子。好像有人用了我的账号。而且我不能删除它。

4

3 回答 3

1

执行此操作的正确方法是选择 STDIN 进行读取,并将超时设置为您想要的多长时间。Select 将返回 STDIN 以供读取或不返回任何内容,这表示超时。

http://linux.die.net/man/2/select

于 2013-08-24T10:07:19.613 回答
1

如果您只想让程序坐下来等待...进行循环检查输入,请使用将时钟的开始时间保存在变量中。更新结束时间。如果时间(此处为 5 秒)已过期,请检查循环。

begin_t = clock();

// do-loop

   /* read user input*/
   end_t = clock();
// while( end_t - begin_t < 5 * CLOCKS_PER_SEC ) 
于 2013-08-24T10:00:55.413 回答
1

在我看来,使用 fork() 和 sleep() 并不是实现这种结果的最佳方式。最好使用 select() 调用,它允许等待超时的数据。

有关一些示例代码,请参阅select() 上的 unix 手册页。

于 2013-08-24T10:01:20.223 回答