您的位置:首页 > 运维架构 > Linux

linux学习:进程间通信—管道

2014-04-25 15:01 369 查看
1、进程间通信其中一种比较简单的方法是管道操作
/*
============================================================================
Name        : Test.c
Author      : wangchuan
Version     :
Copyright   : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/

#include <stdio.h>
#include <stdlib.h>

#include <string.h>
#include <unistd.h>

#include <sys/types.h>
#include <sys/wait.h>

int main(int argc,char* argv[]) {
int fd[2],cld_pid,len;
char buf[200];
if(pipe(fd) == -1){
perror("创建管道出错");
exit(1);
}
if((cld_pid=fork()) == 0){
close(fd[1]);
len = read(fd[0],buf,sizeof(buf));
buf[len] = 0;
printf("子进程从管道中读取的数据是:%s ",buf);
exit(0);//结束子进程
}
else{
close(fd[0]);
sprintf(buf,"父进程为子进程(PID=%d)创建该数据",cld_pid);
write(fd[1],buf,strlen(buf));
exit(0);//结束父进程
}
return 0;
}


编译运行输出如下:

子进程从管道中读取的数据是:父进程为子进程(PID=7309)创建该数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: