Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我试图理解以下 C 程序:
#include <curses.h> int main() { int i; initscr(); halfdelay(5); for (i=0; i < 5; i++) getch(); endwin(); }
但我无法理解它。我了解initscr()初始化当前屏幕,即getch()等待用户输入解锁当前终端,但halfdelay()这里的循环和完成是什么?
initscr()
getch()
halfdelay()
halfdelay(n);设置输入模式,其中getch函数等待n十分之一秒(在您的示例程序中为半秒)让用户输入内容。getch返回按键,除非计时器超时,在这种情况下它返回ERR. cbreak()可以使用或再次关闭此模式nocbreak()。
halfdelay(n);
getch
n
ERR
cbreak()
nocbreak()
这可以用在代码中,例如,要求用户确认但如果他们在特定时间范围内没有响应,则默认为某个值。
halfdelay 用于禁用 50 秒检查用户不活动的字符缓冲。
此示例从用户输入中读取 5 个字符。如果用户在 50 秒内处于非活动状态,则 getch 返回 ERR,并将 errno 设置为 EINTR。
在那里和那里查看详细信息