进程间通信的一种方式之一就是管道,前面讲到了无名管道pipe(),无名管道可以用在父子进程间的通信,代码略。
管道是什么?
管道是进程间的通信方式,可以打开可以关闭可读可写,那么它存在于计算机的哪里,是什么?
简单的说,管道是一个文件,因为在linux系统中,所见皆是文件,文件是可以读可以写的
只是管道这个文件是存在于内核中的
+
但是假设这样一个背景,想要在两个不相识的进程间通信该如何处理?
那么就用上有名管道了。
有名管道的几条注意:
1、使用命令mkfifo创建管道文件,或者使用mkfifo()在程序中创建管道
2、使用open打开指定的管道,得到文件描述符fd,注意打开时候,必须是一端读,另一端写;
3、分别读写fd
4、关闭使用close
管道的使用
管道不同于普通文件,不可以随即访问,即不可以移动文件指针
管道可以看做是一个队列,只能从入端放数据,从出端取数据,而不能从中间获取数据