Linux匿名管道如何实现实例详细解析?
- 内容介绍
- 相关推荐
本文共计523个文字,预计阅读时间需要3分钟。
Linux中进程的一种通信方式——无名管道+pipe函数建立管道+调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端和一个写端,通过pipe参数传递数据给用户程序的两个文件。
linux中进程的一种通信方式——匿名管道
pipe函数建立管道
调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过_pipe参数传出给用户程序两个文件描述符,_pipe[0]指向管道的读端,_pipe[1]指向管道的写端。所以管道在用户程序看起来就像一个打开的文件,通过read(_pipe[0]);或者write(_pipe[1]);向这个文件读写数据其实是在读写内核缓冲区。pipe函数调用成功返回0,调用失败返回-1。
1父进程调用pipe开辟管道,得到两个文件描述符指向管道的两端。
2. 父进程调用fork创建⼦进程,那么子进程也有两个文件描述符指向同一管道。
3. 父进程关闭管道读端,子进程关闭管道写端。
本文共计523个文字,预计阅读时间需要3分钟。
Linux中进程的一种通信方式——无名管道+pipe函数建立管道+调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端和一个写端,通过pipe参数传递数据给用户程序的两个文件。
linux中进程的一种通信方式——匿名管道
pipe函数建立管道
调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过_pipe参数传出给用户程序两个文件描述符,_pipe[0]指向管道的读端,_pipe[1]指向管道的写端。所以管道在用户程序看起来就像一个打开的文件,通过read(_pipe[0]);或者write(_pipe[1]);向这个文件读写数据其实是在读写内核缓冲区。pipe函数调用成功返回0,调用失败返回-1。
1父进程调用pipe开辟管道,得到两个文件描述符指向管道的两端。
2. 父进程调用fork创建⼦进程,那么子进程也有两个文件描述符指向同一管道。
3. 父进程关闭管道读端,子进程关闭管道写端。

