client_fifo:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
int main(void)
{
printf("开始微信聊天\n");
//创建一个进程
pid_t pid = fork();
if(pid == 0) //子进程
{
int fd=open("/home/gec/pipe2",O_RDWR);
if(fd < 0)
{
perror("fd error:");
return 0;
}
//读取对方发送过来的数据
while(1)
{
char buf[1024]={0};
//读取对方消息
read(fd,buf,1024);
printf("小米: %s\n",buf);
}
}
//打开管道文件
int fd=open("/home/gec/pipe",O_RDWR);
if(fd < 0)
{
perror("");
return 0;
}
//不断往管道写入数据
while(1)
{
char buf[1024]={0};
scanf("%s",buf);
//写入数据
write(fd,buf,strlen(buf));
}
//关闭管道文件
close(fd);
return 0;
}
server_fifo:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(void)
{
printf("开始微信聊天\n");
pid_t pid = fork();
if(pid == 0)
{
int fd=open("/home/gec/pipe2",O_RDWR);
if(fd < 0)
{
perror("");
return 0;
}
//不断往管道中写入数据
while(1)
{
char buf[1024]={0};
scanf("%s",buf);
//写入数据
write(fd,buf,strlen(buf));
}
}
//1.打开管道文件
int fd=open("/home/gec/pipe",O_RDWR);
if(fd < 0)
{
perror("");
return 0;
}
//不断读取管道中的数据
while(1)
{
char buf[1024]={0};
read(fd,buf,1024);
printf("华为: %s\n",buf);
}
//关闭管道文件
close(fd);
return 0;
}