linux - 在 *nix 系统中创建临时命名的 fifo

标签 linux unix fifo

我有一些任务需要大量的临时命名管道来处理。

本来,我只是简单的认为生成随机数,然后将其附加为<number>.fifo是命名管道的名称。

但是,我找到了这个帖子:Create a temporary FIFO (named pipe) in Python?

似乎有一些我不知道的东西可能会在那里导致一些安全问题。

所以我的问题是,生成命名管道的最佳方法是什么?

请注意,尽管我引用的是与 Python 相关的帖子,但我并不是真的只想用 Python 来提问。

更新:

由于我想使用命名管道连接不相关的进程,我的计划是让进程A先通过shell调用进程B,并捕获stdout获取管道名称,然后双方都知道打开什么。

这里我只是担心泄漏管道名称是否会成为问题。之前我从未想过它,直到我阅读了那篇 Python 文章。

最佳答案

如果您必须使用命名 FIFO 并且需要确保不会发生重叠/覆盖,您最好的选择可能是使用 mktempmkfifo 的某种组合。

虽然 mktemp 本身不能创建 FIFO,但它可用于创建唯一的临时目录,然后您可以将 FIFO 放入其中。

GNU mktemp documentation有这样的例子。

关于linux - 在 *nix 系统中创建临时命名的 fifo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722463/

相关文章:

Linux 从任何地方执行 CASA

linux - 提取不包括特定文件夹及其内容的 tar 存档

linux - 在 shell 脚本中更改 shell 和执行命令

embedded - open ("/dev/i2c-1",O_RDWR) 返回-1, i2c-1 设备无法打开

Linux Shell 脚本更改文件模式

C linux守护进程在打开FIFO后不写入文件

c++ - FIFO 输入运算符重载

c - 写入/读取 FIFO 文件 - linux

shell - $@ 变量的奇怪行为

linux - 创建目录的 tar.gz 并清理除文件以外的目录?