父子进程通信linux,linux 父子进程 PIPE 通信 实例

#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);

}

}

阅读(688) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值