当从DOS提示符运行时,以下golang代码捕获 CTRL + C ,但是当我从Cygwin运行它时,它不会捕获 + C 。
当按下 CTRL + C 时,Cygwin会怎么做?我的操作系统是Win7 64位,运行32位Cygwin。
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")
}
答案 0 :(得分:4)
我在cygwin邮件列表上得到的答案是,为了使信令工作,程序必须编译并与Cygwin编译器和链接器链接。 Cygwin不是golang支持的平台,因此我无法在从Cygwin启动的golang程序中捕获 CTRL + C 。