如果我定义自己的SIGWINCH信号处理程序,getmaxyx将无效(即它不会报告更新的值)。如果我调用endwin(),它会工作,但这会导致闪烁(例如,在启动ncurses之前显示屏幕)。 有没有办法避免不得不调用endwin()或至少避免上面提到的闪烁? 请注意,默认信号处理程序(与检查KEY_RESIZE结合使用)有效,但我试图通过重复调用getch来避免轮询。
答案 0 :(得分:0)
您可能希望确保调用由ncurses设置的旧信号处理程序。此处理程序设置getmaxyx
返回的值。