在Windows上使用Git Bash / MINGW64和Go捕获CTRL-C,可以通过以下步骤实现:
以下是一个示例代码,演示如何在Windows上使用Git Bash / MINGW64和Go捕获CTRL-C信号:
package main
import (
"fmt"
"os"
"os/signal"
"syscall"
)
func main() {
// 创建一个通道来接收信号
sigChan := make(chan os.Signal, 1)
// 捕获CTRL-C信号
signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM)
// 启动一个goroutine来等待信号
go func() {
// 等待信号
sig := <-sigChan
fmt.Println("捕获到信号:", sig)
// 执行相应的操作,比如关闭资源、保存数据等
// ...
// 退出程序
os.Exit(0)
}()
// 保持程序运行
fmt.Println("按下CTRL-C可以触发信号")
select {}
}
在上述示例代码中,我们创建了一个通道sigChan
来接收信号。然后使用signal.Notify
函数将os.Interrupt
和syscall.SIGTERM
信号发送到sigChan
通道。接着,我们启动一个goroutine来等待信号,一旦收到信号,就执行相应的操作,并退出程序。
这个示例代码可以在Windows上使用Git Bash / MINGW64和Go编译运行。通过按下CTRL-C组合键,可以触发信号捕获,并执行相应的操作。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云