Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使gets()在C中只等待来自STDIN的输入的特定时间?_C_Timeout_Stdin_Gets - Fatal编程技术网

如何使gets()在C中只等待来自STDIN的输入的特定时间?

如何使gets()在C中只等待来自STDIN的输入的特定时间?,c,timeout,stdin,gets,C,Timeout,Stdin,Gets,正如标题所述。我在中有gets(buffer),而(1)无限循环,它在gets(buffer)上停止并无限等待。我希望get(buffer)只等待3秒钟,然后在缓冲区中没有字符串时,再次将控制权传递给while,以此类推。 C是语言 提前谢谢 标准的get()函数没有超时功能。经典的 在C中实现I/O操作超时的方法是使用。您不应该使用gets,而应该使用fgets,因为gets是不安全的。如果缓冲区太小,则会出现缓冲区溢出。切勿使用get。永远不要使用get。因为这还不够,所以永远不要使用get

正如标题所述。我在
中有
gets(buffer)
,而(1)
无限循环,它在
gets(buffer)
上停止并无限等待。我希望
get(buffer)
只等待3秒钟,然后在缓冲区中没有字符串时,再次将控制权传递给while,以此类推。
C是语言
提前谢谢

标准的
get()
函数没有超时功能。经典的
在C中实现I/O操作超时的方法是使用。

您不应该使用
gets
,而应该使用
fgets
,因为
gets
是不安全的。如果缓冲区太小,则会出现缓冲区溢出。切勿使用
get
。永远不要使用
get
。因为这还不够,所以永远不要使用
get
。曾经有没有办法用STDIN作为套接字实现select()?在select()中设置timeout-tv_sec-in一段时间,做我想做的事?@azrahel查看
STDIN_FILENO