在 Windows 环境中,我不希望我的程序的两个实例同时运行。

最佳答案

如果是你的程序,那么windows下的最短版本:

int main(int argc, char** argv)
{
    CreateMutexA(0, FALSE, "Local\\$myprogram$"); // try to create a named mutex
    if(GetLastError() == ERROR_ALREADY_EXISTS) // did the mutex already exist?
        return -1; // quit; mutex is released automatically

    // ... program code ...
}

没有必要变得疯狂复杂,如果你只需要一个简单的检查......

关于c++ - C/C++ 如何判断一个程序是否已经在运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/800730/

10-13 08:30