2013-08-26 154 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