我需要使用 Go 工具鏈構建一個程序,然后執(zhí)行它。由于某些原因,由于分叉,我收到了權限錯誤。有沒有辦法規(guī)避這個錯誤或任何最佳實踐?我認為我的程序對Go test工具做了類似的事情,但go test沒有出現(xiàn)這種錯誤。package mainimport( "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 mainimport( "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操作系統(tǒng):OSX 10.11
1 回答

30秒到達戰(zhàn)場
TA貢獻1828條經(jīng)驗 獲得超6個贊
您正在將命令路徑從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
- 1 回答
- 0 關注
- 478 瀏覽
添加回答
舉報
0/150
提交
取消