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

Jas*_* Hu 7 unix linux fifo

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

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

但是,我发现这篇文章:在Python中创建一个临时FIFO(命名管道)?

似乎有些东西我不知道可能会导致一些安全问题.

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

请注意,即使我引用了与Python相关的帖子,我也不是故意只在Python中提问.

更新:

由于我想使用命名管道来连接不相关的进程,我的计划是首先通过shell进行进程A调用进程B,并捕获stdout以获取管道的名称,然后两者都知道要打开什么.

在这里,我只是担心泄漏管道名称是否会成为一个问题.在我从未想过它之前,直到我读到Python帖子.

yos*_*ian 6

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

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

GNU mktemp 文档有一个这样的例子。