读书人

linux历程通信编程2

发布时间: 2012-12-26 14:39:28 作者: rapoo

linux进程通信编程2

创建一个管道,然后创建一个子进程。让父进程想管道里写入数据,让子进程从管道中读取数据,程序在写或读之前把那些不用的描述符给关掉


源码

#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/types.h>int main(){  int n;  int fd[2]; //管道【1】为写入端,管道【0】为读出端  pid_t pid;//定义一个进程号  char  line[1024];  //定义一个缓存区 if(pipe(fd)<0)    //建立管道 perror("pipe error"); if((pid=fork())<0)//创建子进程 perror("fork error"); else if (pid==0)  //pid号为1则是父进程,为0表示子进程{ close(fd[0]); //关闭子进程 write(fd[1],"I'm child,hello father!",23);//让父进程从管道中写入数据}else { close(fd[1]);//程序在写或读之前把不用的描述符给关掉wait();//  带等子进程结束n=read(fd[0],line,1024);  //让子进程从管道中读取数据,读取到缓冲数组中write(STDOUT_FILENO,line,n);//把缓冲区的数据写入到屏幕上}exit(0);}


读书人网 >编程

热点推荐