我有一些任务需要大量的临时命名管道来处理。
本来,我只是简单的认为生成随机数,然后将其附加为<number>.fifo
是命名管道的名称。
但是,我找到了这个帖子:Create a temporary FIFO (named pipe) in Python?
似乎有一些我不知道的东西可能会在那里导致一些安全问题。
所以我的问题是,生成命名管道的最佳方法是什么?
请注意,尽管我引用的是与 Python 相关的帖子,但我并不是真的只想用 Python 来提问。
更新:
由于我想使用命名管道连接不相关的进程,我的计划是让进程A先通过shell调用进程B,并捕获stdout获取管道名称,然后双方都知道打开什么。
这里我只是担心泄漏管道名称是否会成为问题。之前我从未想过它,直到我阅读了那篇 Python 文章。
最佳答案
如果您必须使用命名 FIFO 并且需要确保不会发生重叠/覆盖,您最好的选择可能是使用 mktemp
和 mkfifo
的某种组合。
虽然 mktemp
本身不能创建 FIFO,但它可用于创建唯一的临时目录,然后您可以将 FIFO 放入其中。
GNU mktemp documentation有这样的例子。
关于linux - 在 *nix 系统中创建临时命名的 fifo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722463/