[Linux管道和IPC]命名管道操作--命名管道通信接收服务器端

#include 
#include 
#include 
#include 
#include 
#include 

#define FIFO_FILE "MYFIFO"  //命名管道名称

int main(int argc,char * argv)
{
  FILE *fp;
  char readbuf[80];   //读缓冲区
  // 创建命名管道文件
  if((fp=fopen(FIFO_FILE,"r"))==NULL)
  {
    umask(0);
    mknod(FIFO_FILE,S_IFIFO|0666,0);
  }
  else
  {
    fclose(fp);  //如果存在关闭fp
  }
  while(1)
  {
   //打开命名管道文件
    if((fp = fopen(FIFO_FILE,"r"))==NULL)
    {
      printf("打开fifo失败. \n");
      exit(1);
    }
    // 从命名管道中读数据
    if(fgets(readbuf,80,fp)!=NULL)
    {
      printf("接收到字符串::%s \n", readbuf);
      fclose(fp);
    }
    else
    {
      if(ferror(fp))  //如果出错
      {
        perror("读文件失败.\n");
        exit(1);
      }
    }
  }
  return 0;
}

网站题目:[Linux管道和IPC]命名管道操作--命名管道通信接收服务器端
分享URL:http://hbruida.cn/article/pipsep.html