C

為什麼我不能執行這個 C 程序?

  • April 23, 2018

我正在嘗試執行我的第一個“程序”程序,但出現以下錯誤:

./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描述如何將原始碼轉換為工作執行檔。

這個問題有關於腳本(當你試圖處理你的原始碼)和編譯程序之間的差異的各種資訊。

引用自:https://unix.stackexchange.com/questions/45340