mkfifo 命令用于创建有名管道(Named Pipe)
mkfifo [OPTION]... NAME...
OPTION:可选参,用于指定一些操作选项,下面详细介绍。 NAME:必选参,用于指定要创建的有名管道的名称。 mkfifo 命令的常用选项如下:
-m 权限:设置管道的权限,其格式与 chmod 命令相同。 -Z 文件类型:指定创建管道的 SELinux 上下文。 --help:显示帮助信息。 --version:显示版本信息。 有名管道是一种特殊的文件类型,可以通过文件系统中的某一个文件名来建立,它允许无关进程之间的通信。使用有名管道时,需要先用 mkfifo 命令创建管道文件,然后通过文件 I/O 操作来进行数据的读写。在使用完毕后,需要手动删除该文件。
例如,下面的示例代码演示了如何使用 mkfifo 命令来创建有名管道,以及如何使用管道向另一个进程发送消息:
mkfifo mypipe # 创建有名管道
ls -l mypipe # 查看管道文件的类型:p 表示管道
echo "hello, world" > mypipe # 在一个进程中向管道中写入数据
cat < mypipe # 在另一个进程中从管道中读取数据
rm mypipe # 删除管道文件
上述代码中,首先使用 mkfifo 命令创建了一个名为 mypipe 的有名管道文件。可以通过 ls -l 命令来查看管道文件的类型,其类型为 p,表示为管道。然后在一个进程中使用 echo 命令向管道中写入了字符串 "hello, world",而在另一个进程中使用 cat 命令从管道中读取了这个字符串。最后,使用 rm 命令删除了管道文件。
需要注意的是,有名管道在使用完毕后需要主动删除,否则会一直存在于文件系统中,占用空间。也可以使用 mkfifo 命令的 -m 选项来设置管道的权限,以保护管道不被非授权访问或修改。