CTRL + C没有被捕获

时间:2018-11-06 09:48:47

标签: go operating-system signals

我正在尝试编写一个程序,每当按下cntrl + c时打印“等待”,并继续打印1到10之间的数字。否则,应打印1到10之间的数字,每个数字之间要有10秒的延迟但是,每当我单击并且没有打印“ wait”时,都无法识别control + c,只有1到10之间的数字可以识别。

    func main() {
        c := make(chan os.Signal, 1)
        signal.Notify(c, os.Interrupt)
        go func() {
            for sig := range c {
                fmt.Print(sig)
                fmt.Print("WAIT")
            }
        }()
        for i := 1; i <= 10; i++ {
            fmt.Println(i)
            time.Sleep(time.Second)
        }

}

1 个答案:

答案 0 :(得分:1)

您需要确保将终端或终端仿真器设置设置为可以执行的操作。终端驱动程序会进行大量筛选。例如,在Enunchs上,键被转换为发送到应用程序,然后以的形式回显到终端。

您的终端驱动程序可能会忽略。可能是在passthu模式下,它只是作为字符发送到您的应用程序。

如何进行此类设置取决于您的操作系统。