管道文件
前面学到过|
管道操作符。它的作用是:将|
前面的命令的输出作为|
后面的命令的输入。
它有两个好处:
但是也有缺点:
- 每次使用的时候都会启动一个子shell,造成资源浪费
- 功能太简单,只能调用一次
这种管道操作符|
又可以称为匿名管道。
这节我们来说一个管道文件,又称为命名管道。它是一个特殊的,实际存在的文件。(在linux中,一切皆是文件。)
创建管道文件
有两个命令可以创建管道文件。
- mknod
- mkfifo
mknod
1 | [root@vm-101 ~]# mknod fifo p |
这样一个管道文件就创建好了。怎么使用呢?
1 | # 终端1 |
1 | # 终端2 |
mkfifo
1 | [root@vm-101 ~]# mkfifo fifo |
1 | # 终端1 |
1 | # 终端2 |
这里是多次输入,一次全部读出。
用途
- 进程之间的通讯
- 作为一个简单的队列
- mknod功能相对强大。除了这里介绍的功能,还可以创建块设备。