亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

命令失敗,在 MacOS 上 fork/exec 權限被拒絕?

命令失敗,在 MacOS 上 fork/exec 權限被拒絕?

Go
MM們 2023-08-07 11:20:52
我有一個 go 程序需要執行另一個可執行程序,我想從 go 代碼執行的程序位于/Users/myuser/bin/目錄中,其完整路徑為/Users/myuser/bin/prog代碼是:package mainimport (? ? "fmt"? ? "log"? ? "os/exec")func main() {cmd := exec.Command("prog")cmd.Dir = "/Users/myuser/bin/"out, err := cmd.CombinedOutput()? ? if err != nil {? ? ? ? log.Fatalf("cmd.Run() failed with %s\n", err)? ? }? ? fmt.Printf("combined out:\n%s\n", string(out))}當我在 MacOS Mojave 上運行上述代碼時,我總是收到以下錯誤:命令因 fork/exec /Users/myuser/bin/ 失?。簷嘞薇痪芙^我見過類似錯誤的其他答案,例如Go fork/exec 權限被拒絕錯誤和Go build & exec: fork/exec: 權限被拒絕,但我不確定這里是否是這種情況。是我機器的權限問題嗎?或者可以從代碼中完成其他操作?
查看完整描述

2 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

好的,我讓它以這種方式工作:

  • 我將命令執行實現更改為:

?func main() {

? ? cmd := exec.Command("prog")

? ? ? ? cmd.Dir = "/Users/myuser/bin/"

? ? ? ? var out bytes.Buffer

? ? ? ? var stderr bytes.Buffer

? ? ? ? cmd.Stdout = &out

? ? ? ? cmd.Stderr = &stderr

? ? ? ? err := cmd.Run()

? ? ? ? if err != nil {

? ? ? ? ? ? fmt.Println(fmt.Sprint(err) + ": " + stderr.String())

? ? ? ? ? ? return

? ? ? ? }

? ? ? ? fmt.Println("Result: " + out.String())

? ? }


查看完整回答
反對 回復 2023-08-07
?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

我遇到了同樣的錯誤,但就我而言,我犯了一個錯誤。我沒有提供可執行文件的路徑,而是錯誤地提供了目錄的路徑。

另外,嘗試檢查二進制文件的權限(如果它是文件)。

ls -l <path_to_binary>


查看完整回答
反對 回復 2023-08-07
  • 2 回答
  • 0 關注
  • 225 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號