【问题标题】:Execl Permission Denied执行权限被拒绝
【发布时间】:2016-04-15 04:32:00
【问题描述】:

创建生产者/消费者系统。生产者打算打电话给消费者,但我得到了错误

execl failed for producer: Permission denied

来电:

if (execl("/home/aaron/Documents/Programming/c/producerAsignment",   
          "runConsumer", NULL) == -1) {

     perror("execl failed for producer");
     exit(3);
}

我曾尝试将可执行文件放入与调用它的程序相同的目录中,但没有任何区别。

ls -l /home/aaron/Documents/Programming/c/producerAsignment 
...
-rwxrwxr-x 1 aaron aaron 8760 Jan 10 22:28 runConsumer 
...

【问题讨论】:

  • 在 bash 中输入 ls -l /home/aaron/Documents/Programming/c/producerAsignment 并发布输出
  • aaron@aaron:~$ ls -l /home/aaron/Documents/Programming/c/producerAsignment 总计 60 drwxrwxr-x 3 aaron aaron 4096 Dec 16 13:49 build drwxrwxr-x 3 aaron aaron 4096 12 月 16 日 13:49 dist -rw-rw-r-- 1 aaron aaron 3482 Nov 23 22:56 Makefile drwxrwxr-x 3 aaron aaron 4096 11 月 23 日 22:56 nbproject -rw-rw-r-- 1 aaron aaron 3782 1 月 10 日 23:00 生产.c -rwxrwxr-x 1 亚伦亚伦 13484 1 月 10 日 22:53 运行 -rwxrwxr-x 1 亚伦亚伦 8760 1 月 10 日 22:28 运行消费者 -rwxrwxr-x 1 亚伦亚伦 9050 12 月 7 日 09:32 黄色
  • 您是在给出目录的名称吗?看到这个帖子stackoverflow.com/questions/19414460/…
  • execl的第一个参数是可执行文件的路径。

标签: c linux execl


【解决方案1】:

好的,事实证明您尝试执行的文件实际上是一个目录(参见ls 命令输出开头的字母“d”)。您不能执行目录。仅具有执行权限的文件。

【讨论】:

  • 非常感谢!刚发现!祝你有美好的一天!
猜你喜欢
  • 2013-04-14
  • 1970-01-01
  • 1970-01-01
  • 2014-07-15
  • 2015-07-10
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
  • 2011-03-03
相关资源
最近更新 更多