golang相当于ansi c raise()

时间:2013-07-12 17:09:57

标签: go signals

ANSI C raise()函数的golang等价物是什么?

请参阅此处了解raise()的示例用法:

2 个答案:

答案 0 :(得分:3)

您可以使用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("Got %s!\n", sig.String())

这个实现在go操场上不起作用,因为它不会让你导入os / signal,但如果你在本地运行代码,它应该可以正常工作(在我的机器上):http://play.golang.org/p/QcrRl2BeNS < / p>

答案 1 :(得分:1)

这样的东西?

process,_ := os.FindProcess(os.Getpid())
process.Signal(os.Kill)

...其中os.Kill是定义here或UNIX平台信号here的标准信号之一(可悲的很少)。