gpt4 book ai didi

linux - 使用cgo挂接syscall “fork”

转载 作者:行者123 更新时间:2023-12-03 10:09:44 27 4
gpt4 key购买 nike

我正在尝试使用Go在Linux中挂接fork系统调用。

package main

/*
#include <unistd.h>
*/
import "C"

import (
"fmt"
"os"

"github.com/rainycape/dl"
)

func main() {}

//export fork
func fork() C.pid_t {
lib, err := dl.Open("libc", 0)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
defer lib.Close()
var old_fork func() C.pid_t
lib.Sym("fork", &old_fork)
return old_fork()
}

当我编译并以 LD_PRELOAD运行时,会发生 panic
panic: reflect.MakeFunc: value of type `int32` is not assignable to type main._Ctype_int

最佳答案

您应该设置一些指令来运行它。请查看其官方文档。 using cgo - Golang official doc

关于linux - 使用cgo挂接syscall “fork”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65880192/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com