curses中的halfdelay功能有什么作用?

use*_*033 2 c curses

我试图理解以下C程序:

#include <curses.h> 

int main() {
    int i; 
    initscr(); 
    halfdelay(5);
    for (i=0; i < 5; i++) 
        getch(); 
    endwin();
}
Run Code Online (Sandbox Code Playgroud)

但我无法理解它.我理解initscr()初始化当前屏幕,那getch()就是等待用户输入解锁当前终端,但循环和halfdelay()完成是什么?

Fre*_*Foo 6

halfdelay(n);设置一个输入模式,其中getch函数等待n十分之一秒(在您的示例程序中,半秒),以便用户键入内容.getch除非计时器过去,否则返回按键,在这种情况下它会返回ERR.可以使用cbreak()或再次关闭此模式nocbreak().

这可以在代码中使用,例如,询问用户确认但是如果他们在特定时间范围内没有响应则默认为某个值.