【问题标题】:Need to invoke ioctl(tty0_fd, KDSETMODE, KD_TEXT) upon abnormal termination异常终止时需要调用ioctl(tty0_fd, KDSETMODE, KD_TEXT)
【发布时间】:2016-12-23 01:01:30
【问题描述】:

我在我的应用程序中使用 Linux 帧缓冲区,并设置 ioctl(tty0_fd, KDSETMODE, KD_GRAPHICS) 以防止底层终端显示任何光标或文本,然后在正常程序终止时进行清理。

但是在异常终止时保持KD_GRAPHICS模式是一件坏事,因为它会使系统无响应,我想知道如何解决这种情况。

使用atexit() 注册的函数仅在正常终止时调用,因此无济于事。我可以为任何可以终止应用程序的信号注册自己的处理程序,但不能捕获SIGKILL

窗口环境和其他程序如何处理这种情况?

【问题讨论】:

    标签: c linux framebuffer termination


    【解决方案1】:

    一种选择是生成一个独立于您的主进程的进程,它充当一种看门狗。当它检测到您的进程已退出时,它会恢复终端模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 2012-07-07
      • 2017-08-13
      • 1970-01-01
      相关资源
      最近更新 更多