[英]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);
檢查以下情況,否則您可能會收到權限拒絕錯誤:
/path/your_file
沒有任何空格
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.