/* ************************************************************************
* Filename: Peter.c
* Description:
* Version: 1.0
* Created: 2012年06月18日 16时32分13秒
* Revision: none
* Compiler: gcc
* Author: YOUR NAME (),
* Company:
* ************************************************************************/
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
pid_t pid;
char buf[50]="";
int fd_lp,fd_pl,n;
if((mkfifo("./l_t_p",0666)) < 0)
perror("mkfifo");
if((mkfifo("./p_t_l",0666)) < 0)
perror("mkfifo");
fd_lp=open("./l_t_p",O_RDONLY);
fd_pl=open("./p_t_l",O_WRONLY);
printf("Hi,I am Peter.\n");
if((pid=fork()) < 0)
{
perror("file");
exit(-1);
}
if(pid == 0)
{
while(1)
{
printf("Peter:");
fflush(stdout);
fgets(buf,50,stdin);
write(fd_pl,buf,50);
}
}
if(pid > 0)
{
while(1)
{
if((n=read(fd_lp,buf,sizeof(buf)) > 0))
{
printf("\rLucy:%s",buf);
fflush(stdout);
printf("Peter:");
fflush(stdout);
}
}
}
return 0;
}
/* ************************************************************************
* Filename: Lucy.c
* Description:
* Version: 1.0
* Created: 2012年06月18日 16时32分13秒
* Revision: none
* Compiler: gcc
* Author: YOUR NAME (),
* Company:
* ************************************************************************/
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
pid_t pid;
char buf[50]="";
int fd_lp,fd_pl,n;
if((mkfifo("./l_t_p",0666)) < 0)
perror("mkfifo");
if((mkfifo("./p_t_l",0666)) < 0)
perror("mkfifo");
fd_lp=open("./l_t_p",O_WRONLY);
fd_pl=open("./p_t_l",O_RDONLY);
printf("Hi,I am Lucy.\n");
if((pid=fork()) < 0)
{
perror("file");
exit(-1);
}
if(pid == 0)
{
while(1)
{
printf("Lucy:");
fflush(stdout);
fgets(buf,50,stdin);
write(fd_lp,buf,50);
}
}
if(pid > 0)
{
while(1)
{
if((n=read(fd_pl,buf,sizeof(buf))) > 0)
{
printf("\rPeter:%s",buf);
fflush(stdout);
printf("Lucy:");
fflush(stdout);
}
}
}
return 0;
}
阅读(2288) | 评论(0) | 转发(0) |