#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
int main(void)
{
int pipefd[2] = {-1};
int ret = pipe(pipefd);
int iSign = 0;
char caMsg[32] = {'\0'};
pid_t pid = fork();
if(ret == -1)
{
perror("no name pipe..");
// eixt(2);
}else if(pid > 0)
{
while(1)
{
if(0 == iSign)
{
printf("father send message:");
gets(caMsg);
//close(pipefd[0]);
write(pipefd[1],caMsg,strlen(caMsg) + 1);
iSign = 1;
}else if(1 == iSign)
{
read(pipefd[0],caMsg,sizeof(caMsg));
printf("child say:%s\n",caMsg);
iSign = 0;
}
sleep(2);
}
}else if(pid == 0)
{
while(1)
{
if(1 == iSign)
{
printf("child send message:");
gets(caMsg);
write(pipefd[1],caMsg,sizeof(caMsg));
iSign = 0;
}else if(0 == iSign)
{
read(pipefd[0],caMsg,sizeof(caMsg));
printf("father say:%s\n",caMsg);
iSign = 1;
}
sleep(2);
}
}
printf("hello nidaye\n");
return 0;
}
linux系统编程之管道实现父系进程间通信
最新推荐文章于 2024-09-21 11:32:39 发布