如何限制C程序的实例数?
标题说明了一切,我只需要允许运行我的C程序的一个实例。我如何才能做到这一点?您可以为此使用共享内存。共享内存是一种操作系统级机制如何限制C程序的实例数?,c,multiple-instances,C,Multiple Instances,标题说明了一切,我只需要允许运行我的C程序的一个实例。我如何才能做到这一点?您可以为此使用共享内存。共享内存是一种操作系统级机制 启动应用程序的实例#1 应用程序会检查共享内存中是否存储了值 如果没有,应用程序会将一些值存储到共享内存中 启动应用程序的实例#2 应用程序会检查共享内存中是否存储了值 应用程序发现已经有一个共享内存值和一个值,并自杀 您可以使用共享内存存储允许您的应用程序运行的特定数量的实例。可能的副本请注意,建议的副本不包括此处给出的基于共享内存的解决方案。此外,建议的副
- 应用程序会检查共享内存中是否存储了值
- 如果没有,应用程序会将一些值存储到共享内存中
- 应用程序会检查共享内存中是否存储了值
- 应用程序发现已经有一个共享内存值和一个值,并自杀
您可以使用共享内存存储允许您的应用程序运行的特定数量的实例。可能的副本请注意,建议的副本不包括此处给出的基于共享内存的解决方案。此外,建议的副本需要“单个实例”虽然这个问题想要限制实例的数量,例如仅运行3个实例。@edin-m-您的问题明确地说是“一个实例”。大量微妙的细节被悄悄地掩盖了。一个问题是应用程序意外崩溃——这些崩溃导致程序无法使用,因为共享内存说有一个副本正在运行,但没有。(您需要的数据不仅仅是一个数字。)另一个原因是,其他进程可能会附加到共享内存,随心所欲地更改存储的值,从而破坏该机制的用途。如果任何人都能使用该程序,您必须使共享内存可以正常访问,但这也会使其被滥用。我怀疑可能还有其他潜在的问题。有趣的是,提议的副本没有使用共享内存的解决方案。“我不确定那是因为我概述的问题。”乔纳森·利弗勒说,“这些都是好的观点,但它们并不是可以消除的#1如果在Windows上使用QSharedMemory,则不适用;或者可以使用崩溃处理程序#2您愿意承担的风险+您可以在共享内存中加密数据。我想看到更多的问题与这提到。此外,我们将考虑成本/收益。