2013-08-26 157 views
2

当我试图与zsh的权限被拒绝运行C程序

#include <stdio.h> 
int main(int argc, char *argv[]) 
{ 
    puts("hello world."); 

    return 0; 
} 

我收到此错误运行这个基本的文件(ex1.c中):

zsh: permission denied: ./ex1.c 

回答

1

这是一个C源文件,它不应该像这样运行,你必须先编译它。

这会做:

make ex1 # Implicit rule which in turn will perform cc -o ex1 ex1.c 
./ex1 
+5

完全不正确,如果他没有生成文件。 –

+3

这是隐含的规则。尝试一下。 – aragaer

+1

也许你的系统使它隐含,但我的不是。然而,http://www.gnu.org/software/make/manual/html_node/Implicit-Rules.html确实说这是一个规则,所以我会同意它。 –

9

您首先需要编译它,可能做gcc -o ex1 ex1.c
编译完成后,您将拥有一个名为ex1的可执行文件,您可以通过执行./ex1来运行该文件。 如果您收到另一个permission denied错误,则可以通过执行chmod +x ex1来使其可执行。

+1

通常编译器足够聪明,可以设置可执行文件位自己。 –

+0

好点,谢谢。 –

+1

jeez我是一个白痴,我编译但运行ex1.c不是ex1,谢谢! – eden

1

你不能用C代码运行一个文件。你必须先编译它。如果你有一个gcc编译器可用,那将是:

gcc -o ex1 ex.c 
./ex1