0

ANSI C raise() 函数的 golang 等效项是什么?

有关 raise() 的示例用法,请参见此处:

4

2 回答 2

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

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

于 2013-07-12T17:47:42.307 回答
1

像这样的东西?

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

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

于 2013-07-12T17:47:54.160 回答