管道实例

#include <stdio.h>

#include <unistd.h>

#include <stdlib.h>

#include <string.h>

#include <sys/types.h>

#include <sys/wait.h>

int main(void)

{

  int nCount=0,i,flag=1;

  int pfd[2];

  char szBuffi[1] = {0};

  char szBuffo[1] = {0};

  int  status;

  pid_t pid;

 

  pipe(pfd);

 

   if(fork() == 0){

     nCount = 1;

     sprintf(szBuffi, "%d", nCount);

     printf("szBuffi=%s\n",szBuffi);

     write(pfd[1], szBuffi, strlen(szBuffi));

     close(pfd[0]);

     close(pfd[1]);

     exit(0);

  }else{

      while(flag){

        read(pfd[0], szBuffo, 1);

           if(szBuffo[0]=='1'){

               printf("szBuffo=%s\n",szBuffo);

               pid = wait(&status);

               i = WEXITSTATUS(status);

               printf("child is %d ,exitstatus =%d\n", pid, i);

               flag=0; 

           }

     }

   }

  close(pfd[0]);

  close(pfd[1]);

  pipe(pfd);

  close(pfd[0]);

  close(pfd[1]);

  return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值