Linux程序通訊程式設計
阿新 • • 發佈:2019-01-04
題目:設計一個程式,要求建立一個管道,複製程序,父程序往管道中寫入字串“how are you!”,子程序從管道中讀取並輸入字串“how are you!”。
#include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<sys/wait.h> #include<unistd.h> #include<string.h> int main() { pid_t result; int n; int pipe_fd[2]; char buf1[100],buf2[100]; memset(buf1,0,sizeof(buf1)); if(pipe(pipe_fd)<0) { printf("error!\n"); return -1; } result=fork(); if(result<0) { printf("error!\n"); exit(0); } else if(result==0) { close(pipe_fd[1]); if((n =read(pipe_fd[0],buf1,100))>0) { printf("child read %d char,char is %s\n",n,buf1); close(pipe_fd[0]); exit(0); } } else { close(pipe_fd[0]); printf("please input pipe word \n"); fgets(buf2,sizeof(buf2),stdin); if(write(pipe_fd[1],buf2,strlen(buf2))!=-1) printf("parent write to child is: %s\n",buf2); close(pipe_fd[1]); waitpid(result,NULL,0); exit(0); } return 0; }