runtime: signal SIGSEGV

This commit is contained in:
visualfc
2024-08-14 11:20:07 +08:00
parent cc9de01c99
commit 027d21035e
4 changed files with 71 additions and 0 deletions

32
c/signal/signal.go Normal file
View File

@@ -0,0 +1,32 @@
package signal
import (
"unsafe"
"github.com/goplus/llgo/c"
)
import "C"
const (
LLGoPackage = "link"
)
//llgo:type C
type SignalHandler func(c.Int)
//llgo:type C
type sigactiont struct {
handler SignalHandler
tramp unsafe.Pointer
mask c.Int
flags c.Int
}
//go:linkname sigaction C.sigaction
func sigaction(sig c.Int, act, old *sigactiont) c.Int
func Signal(sig c.Int, hanlder SignalHandler) c.Int {
var act sigactiont
act.handler = hanlder
return sigaction(sig, &act, nil)
}