Ncurses终端大小更改和获取

时间:2019-05-19 15:52:19

标签: c++ multithreading signals ncurses

在我的Ncurses应用程序中,我具有用于读取键盘输入的单独线程以及用于处理SIGHUP的单独信号处理功能:

void terminalDimensionsChangeHandler(int sig_num)
{
    clear();
    endwin();
    refresh();
    windowsManagerGlobal.lock()->redrawWindows();
    keyStrokeGlobal.lock()->refreshBuffers();
}

一切正常,直到我更改端子尺寸,然后getch返回无效值。 每次处理SIGHUP时,我都会使用新的尺寸和内容重新绘制窗口,并且屏幕内容看起来正确。但是,当我按下键盘上的任何键时,我的getch()线程始终返回数字为154的char,这不是我所按的。我试图刷新输入缓冲区,但没有帮助,有什么想法吗?谢谢。

0 个答案:

没有答案