server.c
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{
umask(0); //允许进程创建文件时有最大权限
if(mkfifo("mypipe",0644)<0) //创建命名管道
{
perror("mkfifo"); //创建失败
exit(1);
}
int rfd=open("mypipe",O_RDONLY); //只读方式打开管道
if(rfd<0)
{
perror("open"); //打开失败
exit(1);
}
char buf[1024]; //缓冲区
while(1)
{
buf[0]=0;
printf("please wait....\n");
ssize_t s=read(rfd,buf,sizeof(buf)-1); //读取rfd内容到buf
if(s>0)
{
buf[s-1]=0; //读取成功
printf("client say # %s\n",buf);
}
else if(s==0) //读到文件结尾,或无可读数据
{
printf("server quit");