日期:2014-05-16  浏览次数:20642 次

运行出错Syntax error: "(" unexpected linux系统 开发工具anjuta
linux系统 开发工具为anjuta
编译通过 但运行老是提示出错 

/home/ghgccool/桌面/expe1/expe1_1.c: 3: Syntax error: "(" unexpected

----------------------------------------------
Program exited successfully with errcode (2)
Press the Enter key to close this terminal ... 


下面是程序

#include <stdio.h>
int main(){ 
  int i, r, p1, p2, fd[2];

  char buf[50], s[50];

  pipe(fd);  

  while ((p1=fork())==-1);  

  if (p1==0)  

  { lockf(fd[1], 1, 0);  

  sprintf(buf, "Child process P1 is sending messages! \n");

  printf("Child process P1! \n");

  write(fd[1], buf, 50); 

  sleep(5); 

  lockf(fd[1],0,0); 

  exit(0);  

  }

  else  

  { while ((p2=fork())==-1);  

  if (p2==0)  

  { lockf(fd[1], 1, 0); 

  sprintf(buf, "Child process P2 is sending messages! \n");

  printf("Child process P2! \n");

  write(fd[1], buf, 50); 

  sleep(5);

  lockf(fd[1], 0, 0); 

  exit(0); 

  }

  wait(0);

  if ((r=read(fd[0], s, 50))== -1) printf("cannot read pipe! \n");

  else printf("%s", s);

  wait(0);

  if ((r=read(fd[0], s, 50))== -1) printf("cannot read pipe! \n");

  else printf("%s", s);

  exit(0);

  }

}


------解决方案--------------------
我用gcc编译运行没问题,只是多了隐士声明,gcc选取默认值。
syntax.c:25:3: 警告: 隐式声明与内建函数‘exit’不兼容 [默认启用]
syntax.c:47:3: 警告: 隐式声明与内建函数‘exit’不兼容 [默认启用]
syntax.c:63:3: 警告: 隐式声明与内建函数‘exit’不兼容 [默认启用]

加头文件试试
#include <stdlib.h>