英文:
golang equivalent of ansi c raise()
问题
什么是ANSI C raise()函数的golang等效函数?
在这里可以看到raise()函数的示例用法:
英文:
What is the golang equivalent of the ANSI C raise() function?
See here for an example usage of raise():
答案1
得分: 5
您可以使用os包来实现:
p, err := os.FindProcess(os.Getpid())
p.Signal(os.Interrupt)
此外,您还可以使用os/signal包来捕获发送到您的进程的信号,该包允许您指定一个通道来接收信号:
c := make(chan os.Signal)
signal.Notify(c, os.Interrupt)
sig := <-c
fmt.Printf("收到信号:%s!\n", sig.String())
这个实现在Go Playground上不起作用,因为它不允许您导入os/signal包,但是如果您在本地运行代码,它应该可以正常工作(在我的机器上可以):http://play.golang.org/p/QcrRl2BeNS
英文:
You can do it using the os package:
p, err := os.FindProcess(os.Getpid())
p.Signal(os.Interrupt)
Additionally, you can catch signals sent to your process using the os/signal package, which allows you to specify a channel on which to receive signals:
c := make(chan os.Signal)
signal.Notify(c, os.Interrupt)
sig := <-c
fmt.Printf("Got %s!\n", sig.String())
This implementation won't work on the go playground because it won't let you import os/signal, but if you run the code locally, it should work fine (does on my machine): http://play.golang.org/p/QcrRl2BeNS
答案2
得分: 1
process,_ := os.FindProcess(os.Getpid())
process.Signal(os.Kill)
...其中os.Kill是在这里定义的(可悲的少数)标准信号之一,或者是UNIX平台信号在这里定义的。
英文:
Something like this?
process,_ := os.FindProcess(os.Getpid())
process.Signal(os.Kill)
...where os.Kill is one of the (sadly few) standard signals defined <a href="http://golang.org/pkg/os/#Signal">here</a> or UNIX platform signals <a href="http://golang.org/pkg/syscall/#SIGABRT">here</a>.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论