curses 中的 halfdelay 函数有什么作用?

发布于 2024-10-18 07:54:52 字数 291 浏览 0 评论 0原文

我试图理解以下 C 程序:

#include <curses.h> 

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

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

I am trying to make sense of the following C program :

#include <curses.h> 

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

But I cannot make sense of it. I understand initscr() initialising the current screen, and that getch() is waiting for user input to unlock the current terminal, but what is the loop and halfdelay() accomplishing here ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

椵侞 2024-10-25 07:54:52

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

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

halfdelay(n); sets an input mode where the getch function waits n tenths of a second (in your example program, half a second) for the user to type something. getch returns the keypress, unless the timer elapses, in which case it returns ERR. This mode can be turned off again with cbreak() or nocbreak().

This can be used in code that, e.g., asks the user for confirmation but defaults to some value if they don't respond within a certain time frame.

爱格式化 2024-10-25 07:54:52

halfdelay 用于禁用字符缓冲,并用 50 秒检查用户不活动情况。

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

查看详细信息那里那里

halfdelay is used to disable buffering of chars with 50 sec check for user inactivity.

this sample reads 5 chars from user input. if user is inactive for 0.5 seconds then getch returns ERR with errno set to EINTR.

see details there and there

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文