1

以下 golang 代码在从 DOS 提示符运行时捕获CTRL+ ,但是当我从 Cygwin 运行它时,当按下+C时它不会捕获任何内容。CTRLC

按下CTRL+时 Cygwin 会做什么?C我的操作系统是运行 32 位 Cygwin 的 Win7 64 位。

    func main() {
        c := make(chan os.Signal, 1)
        signal.Notify(c, os.Interrupt)
        go func(){
        for sig := range c {
            fmt.Println(sig.String())
        }
        }()

        time.Sleep(5000 * time.Millisecond) 
        fmt.Println("Done")
    }
4

1 回答 1

5

我在 cygwin 邮件列表上得到的答案是,为了使信号能够正常工作,程序必须通过 Cygwin 编译器和链接器进行编译和链接。Cygwin 不是 golang 支持的平台,因此我无法在从 Cygwin 启动的 golang 程序中捕获CTRL+ C

于 2014-05-01T00:46:22.920 回答