意外的标记“(”在c脚本中

时间:2015-04-04 15:04:27

标签: c unix process fork

我正在尝试编写一个创建子进程的c脚本,并根据返回它将打印一条消息。我到目前为止编写了这段代码:

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>

int main ()
{
 pid_t child_pid;
 printf ("the main program process ID is %d\n", (int) getpid()); 
 child_pid = fork() ; 
 if (child_pid==0){
    printf("this is the child process,with the id %d\n",(int) child_pid );
}
 else
    printf("this is the parent process with id %d\n",(int) getpid ());

 return 0;
}

当我尝试编译它时似乎没问题。但是当我在终端中运行它时会出现以下错误:

./lab7.c: line 6: syntax error near unexpected token `('
./lab7.c: line 6: `int main ()'"

有人可以通过告诉我我的错误来帮助我吗?

1 个答案:

答案 0 :(得分:2)

听起来你正在将源代码作为脚本而不是可执行文件执行,并且毫不奇怪,你所使用的shell都不喜欢它。

您需要先编译代码,然后执行编译结果。例如,在这里我们编译以在第一行中生成名为lab7的可执行文件,并在第二行中执行它:

gcc -Wall -Wextra lab7.c -o lab7
./lab7