curses 中的 halfdelay 函数有什么作用?
我试图理解以下 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
halfdelay(n);
设置输入模式,其中getch
函数等待n
十分之一秒(在示例程序中为半秒)让用户输入一些内容。getch
返回按键,除非计时器超时,在这种情况下它返回ERR
。可以使用cbreak()
或nocbreak()
再次关闭此模式。这可以用在代码中,例如,要求用户确认,但如果用户在特定时间范围内没有响应,则默认为某个值。
halfdelay(n);
sets an input mode where thegetch
function waitsn
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 returnsERR
. This mode can be turned off again withcbreak()
ornocbreak()
.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.
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