我只是想知道在 C 中是否可以窥视输入缓冲区或执行类似的技巧来了解对 fgets 的调用是否会在以后阻塞。Java 允许通过调用 BufferedReader.ready() 来执行类似的操作,这样我可以实现控制台输入,如下所示:
while (on && in.ready()) {
line = in.readLine();
/* do something with line */
if (!in.ready())
Thread.sleep(100);
}
这允许外部线程通过设置为 false 来优雅地关闭输入循环;我想在 C 中执行类似的实现而不使用不可移植的技巧,我已经知道我可以在 unix 下通过使用信号或(更好,即使需要处理缓冲)重新实现来制作“超时 fgets”它在recv/select之上,但我更喜欢在windows上也能工作的东西。
TIA