有没有办法编写 C 代码,让我们确定应用程序的先前实例是否已经在运行?我需要以可移植的方式为 Linux 和 Windows 进行检查,两者都使用可用的 GCC 的最新版本。
任何可移植代码的例子都会有很大的帮助。我现在看到两个选项:
- 检查进程列表。这里linux有很好的工具,但我不认为同样的功能适用于windows。也许两个 SO 都有一些 gnu 库?什么库或函数?
- 保存并锁定文件。现在,如何以两个系统都能理解的方式做到这一点?一个问题是在哪里保存文件?路径树因每个系统而异。此外,如果选择了相对路径,两个应用程序仍然可以在不同目录中使用不同的锁定文件运行。
谢谢!贝科。
PS。SO有不同的要求,所以如果你知道一个而不是另一个,请回答。毕竟,如果没有可移植的“单一”方式,我仍然可以使用#ifdef 和建议的代码作为答案。
C 语言(不是 c++)、控制台应用程序、gcc、linux 和 windows