gpt4 book ai didi

unix - Unix FIFO/命名管道的命名约定是什么?

转载 作者:行者123 更新时间:2023-12-01 09:49:21 26 4
gpt4 key购买 nike

各种手册页通常举例说明在 /tmp 目录中打开的 FIFO,但它们没有共享通用的命名约定。当我列出我的 /tmp 目录的内容时,除了名为 /tmp/ssh-5oRuBPhI9lv9 的目录外,我什么也得不到。是否有专门针对 IPC 的约定?

最佳答案

没有正式的命名约定。

当然,当使用 FIFO 时,您将需要一些约定,因为 FIFO 通常用于不相关进程之间的进程通信。因此,不同进程必须知道该名称,这意味着您必须遵循某种约定,但这是您的决定。

/tmp 中看到名称神秘的目录和文件的原因通常是相应进程调用 mkstemp(3)mkdtemp(3 )。这些函数自动生成一个唯一的名称并创建相应的文件/目录。

如果出于某种原因您希望 FIFO 具有相似的名称,您可以使用 tmpnam(3) 生成一个唯一的名称,然后将该名称传递给 mkfifo(3)。但请注意,在调用 tmpnam(3) 和调用 mkfifo(3) 之间有一个时间窗口,另一个进程可以创建一个具有相同名称的文件(然后 mkfifo(3) 会失败)。如果这是一个问题,您可以改为使用 mkdtemp(3) 自动创建一个临时目录,然后使用您选择的名称在该目录中创建 FIFO。

之所以没有确定的方法自动生成和创建一个临时的、唯一命名的 FIFO,是因为 FIFO 被用作不相关进程的会合点,所以一般来说,这个名字必须先验 .拥有具有唯一临时名称的 FIFO 会使其他进程更难找到它,这有点违背了目的。

关于unix - Unix FIFO/命名管道的命名约定是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com