首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

linux历程通信编程2

2012-12-26 
linux进程通信编程2创建一个管道,然后创建一个子进程。让父进程想管道里写入数据,让子进程从管道中读取数据

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


热点排行