异常终止时需要调用ioctl(tty0_fd, KDSETMODE, KD_TEXT)

Jos*_*ord 5 c linux termination framebuffer

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

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

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

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

Ton*_*nes 1

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