gpt4 book ai didi

macos - 去构建和执行 : fork/exec: permission denied

转载 作者:IT王子 更新时间:2023-10-29 01:59:05 52 4
gpt4 key购买 nike

我需要使用 Go 工具链构建一个程序,然后执行它。由于某些原因,由于 fork ,我收到了权限错误。有没有办法避免这个错误或任何最佳实践?我认为我的程序使用 Go test 工具做了一些类似的事情,尽管 go test 没有得到这种错误。

package main

import(
"os"
"os/exec"
"flag"
log "github.com/golang/glog"
)

func main(){
flag.Parse()
tdir := "abc"
if err := os.MkdirAll(tdir, 0777); err !=nil{
log.Error(err)
return
}
f, err := os.Create(tdir + "/main.go")
if err !=nil{
log.Error(err)
return
}
if err = f.Chmod(0777); err !=nil{
log.Error(err)
return
}
defer f.Close()
defer os.Remove(f.Name())
if _, err = f.Write([]byte(tpl)); err !=nil{
log.Error(err)
return
}
cmd := exec.Command("go", "build", "-o", "edoc")
cmd.Path = tdir
b, err := cmd.CombinedOutput()
if err !=nil{
log.Errorf("%s, err %v", b, err)
return
}

}

var tpl = `package main

import(
"fmt"
"flag"
)

func main(){
flag.Parse()
fmt.Printf("Hello World")

}`

错误:

E0202 18:24:42.359008   13600 main.go:36] , err fork/exec abc: permission denied

操作系统:OSX 10.11

最佳答案

您正在将命令路径从 go 二进制文件的位置更改为 abc

type Cmd struct {
// Path is the path of the command to run.
//
// This is the only field that must be set to a non-zero
// value. If Path is relative, it is evaluated relative
// to Dir.
Path string

如果你想改变工作目录,使用Cmd.Dir

关于macos - 去构建和执行 : fork/exec: permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35159117/

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