溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

進(jìn)程通信(管道 單向通信)

發(fā)布時(shí)間:2020-07-25 20:39:51 來(lái)源:網(wǎng)絡(luò) 閱讀:182 作者:秋笙夏笛 欄目:編程語(yǔ)言
 1 #include<stdio.h>
 2#include<sys/wait.h>
 3#include<unistd.h>
 4#include<string.h>
 5#include<stdlib.h>
 6int main()
 7 {
 8    int pipefd[2];
 9    if(pipe(pipefd)==-1)
 10    {
 11     perror("pipe");
 12     return -1;
 13    }
 14   pid_t pid=fork();
 15   if(pid<0)
 16    {
 17      perror("pid");
 18      return -1;
 19    }
 20   else if(pid==0)
 21    {
 22       close(pipefd[0]);
 23       char buf[20]="we are young";
 24        int i=0;
 25       while(i<10)
 26     {
 27       write(pipefd[1],buf,strlen(buf));
 28       sleep(1);
 29       i++;
 30     }
 31      exit(1);
 32    }
 33   else
 34    {
 35     close(pipefd[1]);
 36     char buf[200];
 37     int j=0;
 38     while(j<10)
 39     {
 40     memset(buf,'\0',sizeof(buf));
 41     ssize_t size= read(pipefd[0],buf,sizeof(buf));
 42       if(size>0)
 43       printf("%s\n",buf);
 44      j++;
 45     }
 46    if(waitpid(pid,NULL,0)==pid)
 47    {
 48       printf("wait success\n");
 49     }
 50    }
 51   return 0;
 52 }
 
 
 Makefile:
 1 Pipe:pipe.c
 2         gcc -o $@ $^
 3.PHONY:clean
 4clean:
 5         rm -f pipe

進(jìn)程通信(管道  單向通信)

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI