SIGWINCH 的设置信号导致终端输出?
Setting signal for SIGWINCH causes output on terminal?
当我为 SIGWINCH 设置一个不执行任何操作的信号处理程序时,调整终端 window 的大小会导致出现反向 ?
字符,在我调整 [=18] 的大小时获取其中的几个=] 周围。如果我不设置信号处理程序,那不会发生。为什么会这样,我该如何停止?
更多信息:我转储字符是什么,当你开始时第一个字符是 0xFF,然后是 0xBF(总是 0xBF),直到你停止并再次开始,然后重复。
TIA
void sigwinchhandler(int signo)
{
}
struct sigaction sa, priorsa;
sigemptyset(&sa.sa_mask);
sa.sa_flags = 0;
sa.sa_handler = sigwinchhandler;
sigaction(SIGWINCH, &sa, &priorsa);
// NOTE: priorsa.sa_handler==NULL, priorsa.sa_sigaction==NULL, priorsa.sa_flags==0
修复是设置:
sa.sa_flags = SA_RESTART;
当我为 SIGWINCH 设置一个不执行任何操作的信号处理程序时,调整终端 window 的大小会导致出现反向 ?
字符,在我调整 [=18] 的大小时获取其中的几个=] 周围。如果我不设置信号处理程序,那不会发生。为什么会这样,我该如何停止?
更多信息:我转储字符是什么,当你开始时第一个字符是 0xFF,然后是 0xBF(总是 0xBF),直到你停止并再次开始,然后重复。
TIA
void sigwinchhandler(int signo)
{
}
struct sigaction sa, priorsa;
sigemptyset(&sa.sa_mask);
sa.sa_flags = 0;
sa.sa_handler = sigwinchhandler;
sigaction(SIGWINCH, &sa, &priorsa);
// NOTE: priorsa.sa_handler==NULL, priorsa.sa_sigaction==NULL, priorsa.sa_flags==0
修复是设置:
sa.sa_flags = SA_RESTART;