簡體   English   中英

C - execl():無法執行位於另一個目錄中的文件

[英]C - execl(): can't execute file located in another directory

我正在嘗試使用我的程序notify.c執行位於另一個目錄中的名為“helloworld”的二進制文件(從source.c編譯)。 這是我的文件所在的位置:

/家庭/ morts /桌面/的HelloWorld

/家庭/ morts /桌面/家庭作業/通知

我嘗試過:

const char *cmd = "/home/morts/Desktop/helloworld";
execl(cmd, "LOL", NULL);
perror("execl()");
exit(EXIT_FAILURE);

但我得到:

execl(): Permission denied

如果helloworld將位於notify的同一目錄中,我只需輸入“./helloworld”,但由於它們位於不同的目錄中,我該如何解決這個問題?

謝謝並恭祝安康。

您應該檢查路徑是否正確,並且您有權通過嘗試直接在終端中運行命令來執行此文件:

/home/morts/Desktop/helloworld

如果它工作,那么你必須檢查運行程序的用戶是否也有權執行該文件。

如果你想在沒有任何參數的情況下通過execl在path / bin / test下執行文件hello,請嘗試以下操作:

execl(“/ bin / test / hello”,“hello”,(char *)NULL);

檢查以下情況,否則您可能會收到權限拒絕錯誤:

  1. 第一個參數必須是/path/your_file沒有任何空格
  2. 第二個參數必須是“ your_file ”,與第一個參數相同
  3. 最后一個參數必須是(char *)NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM