2016-01-10 94 views
-1

创建生产者/消费者系统。制片人是为了呼吁消费者,但我得到的错误Execl Permission Denied

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 
... 
+1

在bash中输入'ls -l/home/aaron/Documents/Programming/c/producerAsignment'输出 –

+0

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 Dec 16 13:49 dist -rw-rw-r-- 1 aaron aaron 3482 11月23日22:56 Makefile drwxrwxr-x 3 aaron aaron 4096 Nov 23 22:56 nbproject -rw-rw-r-- 1 aaron aaron 3782 Jan 10 23:00 produce.c -rwxrwxr-x 1 aaron aaron 13484 Jan 10 22:53 run -rwxrwxr-x 1 aaron aaron 8760 Jan 10 22:28 runConsumer -rwxrwxr-x 1 aaron aaron 9050 Dec 7 09:32 yellow –

+3

你在给一个目录的名字吗?看到这篇文章http://stackoverflow.com/questions/19414460/for-the-following-c-program-execl-returns-1-signifying-a-permission-denied-er –

回答

2

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

+0

非常感谢!刚刚发现了!祝你今天愉快! –

相关问题