创建一个消息队列唯一键的应用程序,可以有多个实例
-
19-08-2019 - |
题
我已经作出了Linux的CUI应用程序,经由消息quene进程之间进行通信。
,只要它是一个实例没有与它没有问题。然而,当有相同的应用程序的多个实例,在quene消息被发送到错误的实例。
我明白,这可以通过给予msgget功能的唯一密钥来避免。 使用ftok()来创建一个密钥,但由于这些变量是相同的,他们导致 相同的密钥。
有人能指导我如何为每个实例的唯一键?
我现在有唯一的想法是randamize给予ftok变量,和 我知道,不能是正确的。
解决方案
小心ftok!
此将只对唯一给定文件系统且仅当然后如果 该文件系统没有大量使用。 fttok是通过在文件系统中的文件条目数被驱动。
这曾经是获得独特价值,但时间的好方法 和摩尔定律几年前赶上了它。它的工作原理上 文件编号,但实际的文件号的低8位现在是32位 和编号为每个文件系统重新开始。
的进程ID是一个相当不错的选择,他们得到重新循环但不作为 只要过程仍然活着。
不隶属于 StackOverflow