我正在尝试使用我的程序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”,但由于它们位于不同的目录中,我该如何解决?
谢谢和问候。
答案 0 :(得分:0)
您应该检查路径是否正确,并且您有权通过尝试直接在终端中运行命令来执行此文件:
/home/morts/Desktop/helloworld
如果有效则必须检查运行程序的用户是否也有权执行该文件。
答案 1 :(得分:0)
如果你想在没有任何参数的情况下通过execl在path / bin / test下执行文件hello 尝试以下:
execl(“/ bin / test / hello”,“hello”,(char *)NULL);
检查以下情况,否则您可能会收到权限拒绝错误:
/path/your_file
,不能有任何空格