C脚本中的意外标记“(”
unexpected token "(" in c script
我正在尝试编写一个创建子进程的 c 脚本,并且根据 return 它将打印一条消息。到目前为止我写了这段代码:
#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 ()'"
谁能告诉我做错了什么?
听起来您正在将源代码作为脚本而不是可执行文件执行,而且,毫不奇怪,无论您在哪个 shell 中都不喜欢它。
您需要先编译代码,然后执行编译结果。例如,这里我们在第一行编译生成一个名为 lab7
的可执行文件,并在第二行执行它:
gcc -Wall -Wextra lab7.c -o lab7
./lab7
我正在尝试编写一个创建子进程的 c 脚本,并且根据 return 它将打印一条消息。到目前为止我写了这段代码:
#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 ()'"
谁能告诉我做错了什么?
听起来您正在将源代码作为脚本而不是可执行文件执行,而且,毫不奇怪,无论您在哪个 shell 中都不喜欢它。
您需要先编译代码,然后执行编译结果。例如,这里我们在第一行编译生成一个名为 lab7
的可执行文件,并在第二行执行它:
gcc -Wall -Wextra lab7.c -o lab7
./lab7