c++ - nCurses 应用程序来自后台时的内容无效
问题描述
将 nCurses 应用程序置于后台/前台时,我观察到它的奇怪行为。几次后,我的窗口显示无效内容。我怀疑在向我的应用程序发送SIGSTOP
/SIGCONT
信号时,我需要处理这些信号并刷新窗口,但我找不到任何关于它的注释。从后台返回时,nCurses 是否有某种方式刷新窗口?或者原因可能不同?
解决方案
ncurses 确实有一个处理程序,SIGTSTP
它在其中设置initscr
- 如果它处于默认状态:
SIGTSTP
这处理用于作业控制的停止信号。恢复进程时,此实现使用 flushinput 丢弃待处理的输入(请参阅 curs_util(3x)),并假设屏幕已完全更改,重新绘制屏幕。它还使用 def_shell_mode 更新保存的终端模式(参见curs_kernel(3x))
推荐阅读
- javascript - 如何在 d3.js v5 上的饼图中放置图例
- python - 读取文件中的“IndexError:单个位置索引器越界”
- excel - VBA获取像素颜色
- javascript - ContextAPI 在页面重新加载和在新选项卡中打开时丢失状态
- php - 包含数据库数据的数组
- c++ - 为什么这个函数多次输出一个单词而不是一个?
- regex - 删除文本周围的括号
- ios - 地图视图:GMSMapView!nil 导致应用程序崩溃(迅速)
- css - 关于在媒体规则......(在手机上显示)
- amazon-web-services - 如何使用 AWS CLI 将名称每天更改的文件移动到 AWS S3 存储桶?