命名管道

命名管道(FIFO, 也称named pipe),是另一种进程的通信方式。与匿名管道不同, 该管道将具象化为一个具体的文件,而且可以在不相关的进程间建立通信关系,效果就如同匿名管道的那样。

在Linux中,使用mkfifo命令或mkfifo函数(C函数)将创建一个命名管道。

简单演示:

$ mkfifo myfifo    # 创建一个名为myfifo的FIFO
$ cat > myfifo <<EOF
first line
last line
EOF                # 向这个myfifo这个命名管道写入一些内容

# 打开一个新终端
$ cat myfifo       # 读取命名管道,将获取到之前写入的内容
$ rm myfifo        # 删除命名管道,就像删除一个普通文件一样

命名管道比匿名管道罕见的多。

Linux进程间的通信机制除了管道之外,还有很多种: 信号消息队列信号量共享内存等等