为getchar()添加超时

我需要在程序中为getchar()添加一个超时函数。

我该怎么办,当我的程序到达指令getchar()时,它只会等待一段时间让用户进行击键,如果用户没有在给定的时间限制内进行击键,程序将“跳过”getchar()?

操作系统不支持conio.h库,因此kbhit不是一个选项。

这通常通过在stdin上使用select()来实现。 另一种解决方案是使用alarm()和伪SIGALRM处理程序来中断getchar()调用(尽管只在POSIX系统上工作)。