我想捕获从控制台发送的 Ctrl+C (SIGINT
) 信号并打印出一些部分运行总计。
最佳答案
您可以使用 os/signal处理传入信号的包。 Ctrl+C 是SIGINT ,因此您可以使用它来捕获 os.Interrupt
。
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt)
go func(){
for sig := range c {
// sig is a ^C, handle it
}
}()
您使程序终止和打印信息的方式完全取决于您。
关于signals - 是否可以以 "defer"方式捕获 Ctrl+C 信号 (SIGINT) 并运行清理功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57151617/