3

我试图理解以下 C 程序:

#include <curses.h> 

int main() {
    int i; 
    initscr(); 
    halfdelay(5);
    for (i=0; i < 5; i++) 
        getch(); 
    endwin();
}

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

4

2 回答 2

6

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

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

于 2011-02-22T11:43:09.803 回答
0

halfdelay 用于禁用 50 秒检查用户不活动的字符缓冲。

此示例从用户输入中读取 5 个字符。如果用户在 50 秒内处于非活动状态,则 getch 返回 ERR,并将 errno 设置为 EINTR。

在那里那里查看详细信息

于 2011-02-22T11:42:31.067 回答