#include
#include
#include
#include
#include
void main()
{
int pipe_fd[2]; // 0 head(read), 1 the tail(write)
pid_t pid;
char buf_r[100]={0};
char char_buf_test[30]={0};
int int_buf_test[30]={0};
int r_num;
//pipe must be create use fork before, Otherwise pipe create two.
char_buf_test[3]='3';
char_buf_test[2]='2';
char_buf_test[1]='1';
char_buf_test[0]='0';
int_buf_test[3]=3;
int_buf_test[2]=2;
int_buf_test[1]=49;
int_buf_test[0]=50;
printf("char_buf_test=%s \n", char_buf_test);
printf("int_buf_test=%c \n", int_buf_test);
if(pipe(pipe_fd)<0)
{
printf("pipe create error!\n");
exit(1);
}
else
printf("pipe create success!\n");
pid = fork();
if(pid<0)
printf("pipe create success!\n");
else if(0==pid)
{
close(pipe_fd[0]);
if(write(pipe_fd[1],"hello",5)!= -1)
printf("child write hello!\n");
if(write(pipe_fd[1]," Pipe",5)!= -1)
printf("child write pipe!\n");
close(pipe_fd[1]);
sleep(5);
}
else if(pid>0)
{
wait(NULL);
close(pipe_fd[1]);
r_num=read(pipe_fd[0], buf_r,100);
if(r_num>0)
printf("r_num= %d buf_r=%s \n",r_num,buf_r);
close(pipe_fd[0]);
exit(0);
}
}
阅读(1486) | 评论(0) | 转发(0) |