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

Linux_4.3_无名管道通信

2015-06-22 11:07 531 查看


进程间通讯的目的:



通讯发展史:





进程间通讯的方式:






管道通信:






管道通信的特点:






无名管道:半双工管道(数据只能在一个方向上流动)






(1) 函数的学习











5.1创建无名管道
5.1.1 函数名

pipe

5.1.2 函数原形

int pipe(int pipefd[2])

5.1.3 函数功能

创建无名管道

5.1.4 所属头文件

#include<unistd.h>

5.1.5 返回值

成功:0

失败:-1

5.1.6 参数说明

pipefd[0]: 指向管道的读端fd

pipefd[1]: 指向管道的写端fd

实例:

#include <stdio.h>

#include <unistd.h>

#include <stdlib.h>

int main(void)

{

pid_t pid = 0;

int pipefd[2];

char c_buf[10];

/*2. create pipe*/

pipe(pipefd);

/*1. create process*/

pid = fork();

if(pid>0)

{

/*parent process write date*/

write(pipefd[1],"hello",6);

wait();

close(pipefd[1]);

exit(0);

}

if(pid==0)

{

/*progeny process*/

read(pipefd[0],c_buf,6);

printf("child read %s\n",c_buf);

close(pipefd[0]);

exit(0);

}

return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: