在 Windows 中使用 PDCurses 时如何处理 SIGINT (Ctrl+C)

问题描述

我正在使用 PDCurses 在 Windows 中编写控制台应用程序。我希望应用程序在我按下 Ctrl+C 时终止。

我的最小可重现代码如下。如果我注释掉 initscr()endwin(),应用程序将在收到 SIGINT 后终止并在控制台中打印“End”。但是,它不适用于这两行,而且会永远有趣。

#include <curses.h>
#include <signal.h>

void handle_sig(int sig) {
    if (sig == SIGINT) {
        endwin();
        printf("End\n");
        exit(0);
    }
}

int main() {
    signal(SIGINT,handle_sig);
    initscr();
    while (1);
    return 0;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)