为什么我无法运行这个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);
}

怎么了?

答案1

你不能就这么跑./fork.c。这不是一个程序;而是一个程序。这是来源对于一个程序。使用./假设该文件是一个脚本(实际上不是)并相应地对待它。

然而,正如另一个答案中所指出的,有编译器(比如小 C 编译器)无需显式编译即可执行 C 代码。

由于是C程序,所以必须编译该程序。cc -o fork fork.c那就试试吧./fork;它在这里起作用了。

答案2

那不是程序,那是程序的源代码。

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描述如何将源代码转换为工作可执行文件。

这个问题有关于脚本(当您尝试处理源代码时)和编译程序之间的差异的各种信息。

相关内容