Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何限制C程序的实例数?_C_Multiple Instances - Fatal编程技术网

如何限制C程序的实例数?

如何限制C程序的实例数?,c,multiple-instances,C,Multiple Instances,标题说明了一切,我只需要允许运行我的C程序的一个实例。我如何才能做到这一点?您可以为此使用共享内存。共享内存是一种操作系统级机制 启动应用程序的实例#1 应用程序会检查共享内存中是否存储了值 如果没有,应用程序会将一些值存储到共享内存中 启动应用程序的实例#2 应用程序会检查共享内存中是否存储了值 应用程序发现已经有一个共享内存值和一个值,并自杀 您可以使用共享内存存储允许您的应用程序运行的特定数量的实例。可能的副本请注意,建议的副本不包括此处给出的基于共享内存的解决方案。此外,建议的副

标题说明了一切,我只需要允许运行我的C程序的一个实例。我如何才能做到这一点?

您可以为此使用共享内存。共享内存是一种操作系统级机制

  • 启动应用程序的实例#1
    • 应用程序会检查共享内存中是否存储了值
    • 如果没有,应用程序会将一些值存储到共享内存中
  • 启动应用程序的实例#2
    • 应用程序会检查共享内存中是否存储了值
    • 应用程序发现已经有一个共享内存值和一个值,并自杀

  • 您可以使用共享内存存储允许您的应用程序运行的特定数量的实例。

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