gpt4 book ai didi

c++ - 应用程序的一个实例,平台无关,C++11

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:09 26 4
gpt4 key购买 nike

在 C++11 中是否有一种独立于平台的方法(可以使用 boost )来确保一次只启动一个应用程序实例? (我不希望使用“文件和 (f)lock”方法运行,因为它需要特定于平台的代码,但如果没有更好的方法,我会这样做。)

在我的场景中,没有(简单的)其他方式,如不可用端口,我可以将其用作标准。是的,我知道 DOS 问题 - 因此无需指出这些问题。

我发现以下类似问题提示 solution与 boost 。该解决方案有两个问题:

  • 轻微:似乎缺少对 shared_memory_object::remove("shared_memory"); 的调用(在“比赛获胜”的情况下)。但是我对 boost::interprocess 不是很熟悉,所以也许我错了?!
  • 主要:如果程序崩溃共享内存仍然存在,因此程序的下一个实例将无法启动。

我也找到了这个question .那里没有让我兴奋的答案。但这是一个 C++98 问题,所以现在可能使用 C++11 或 boost 有一种新的/不同的方法?

最佳答案

关于c++ - 应用程序的一个实例,平台无关,C++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25864725/

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