您的位置:首页 > 其它

windows下如何防止启动两个一样的进程

2016-01-19 23:12 381 查看
方法用互斥量,Mutex来解决,因为Mutex有进程互斥的作用,而临界区则没有进程互斥功能。

方法如下:

#include <iostream>
using namespace std;

#include <windows.h>

int main(int argc, char** argv)
{
HANDLE handle = CreateMutex(NULL, TRUE, "daserver");
if ((GetLastError() == ERROR_ALREADY_EXISTS) || (NULL == handle))
{
return -1;
}
getchar();
return 0;
}

注意上面的代码,不能仅仅判断handle句柄是否为NULL,因为handle如果不存在,并不是等于NULL,是个范围从0开始的一个范围,而NULL是0,所以要进行GetLastError的判断。

linux中可以使用文件的方式来判断
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: