C
為什麼我不能執行這個 C 程序?
我正在嘗試執行我的第一個“程序”程序,但出現以下錯誤:
./fork.c: line 4: syntax error near unexpected token `(' ./fork.c: line 4: `int main()'
我很確定程式碼是正確的:
#include <sys/types.h> #include <stdio.h> int main() { pid_t pid; printf("Hello fork()\n"); switch(pid=fork()) { case -1: printf("Error by fork().....\n"); exit(0); case 0: printf("I'm the child process \n"); break; default: printf("I'm the dad \n"); break; } exit(0); }
怎麼了?
你不能只跑
./fork.c
。這不是一個程序;它是程序的來源。Using./
假定該文件是一個腳本(它不是)並相應地對待它。但是,正如另一個答案中所述,有些編譯器(例如Tiny C Compiler)可以在不顯式編譯的情況下執行 C 程式碼。
由於它是 C 程序,因此您必須編譯該程序。
cc -o fork fork.c
那就試試吧./fork
;它在這里工作。
那不是程序,那是程序的原始碼。
C 是一種編譯語言,這意味著它必須先“編譯”成機器可讀的指令,然後才能執行它。當您使用 C 時,“C 編譯器”(
cc
)可以做到這一點。cc -o fork for.c # compile the code chmod +x fork # ensure it it executable ./fork # run the compiled program
當您繼續使用多個源文件和外部庫的更複雜的程序時,您可能會繼續使用“GNU 編譯器集合”(
gcc
)並make
描述如何將原始碼轉換為工作執行檔。這個問題有關於腳本(當你試圖處理你的原始碼)和編譯程序之間的差異的各種資訊。