#include<stdio.h>
#include<unistd.h>
#include<errno.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int fd[2];
pid_t pid;
char r_buf[100];
char w_buf[100];
int r_num;
memset(r_buf,0,sizeof(r_buf));
memset(w_buf,0,sizeof(w_buf));
if(pipe(fd)<0)
{
perror("pipe error!");
exit(-1);
}
if((pid = fork()) == 0)
{
close(fd[1]);
sleep(3);
r_num = read(fd[0],r_buf,100);
printf("read num is %d the data read from the pipe is %d\n",r_num,atoi(r_buf));
close(fd[0]);
exit(0);
}
else if(pid > 0)
{
close(fd[0]);
strcpy(w_buf,"111");
write(fd[1],w_buf,4);
close(fd[1]);
printf("parent close fd[1] over!\n");
}
return 0;
}
#include<unistd.h>
#include<errno.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int fd[2];
pid_t pid;
char r_buf[100];
char w_buf[100];
int r_num;
memset(r_buf,0,sizeof(r_buf));
memset(w_buf,0,sizeof(w_buf));
if(pipe(fd)<0)
{
perror("pipe error!");
exit(-1);
}
if((pid = fork()) == 0)
{
close(fd[1]);
sleep(3);
r_num = read(fd[0],r_buf,100);
printf("read num is %d the data read from the pipe is %d\n",r_num,atoi(r_buf));
close(fd[0]);
exit(0);
}
else if(pid > 0)
{
close(fd[0]);
strcpy(w_buf,"111");
write(fd[1],w_buf,4);
close(fd[1]);
printf("parent close fd[1] over!\n");
}
return 0;
}