#include <stdio.h>
#include <windows.h>
int main (void)
{
HANDLE hMutex=CreateSemaphore(NULL,1,5,TEXT("125096"));
if (hMutex)
{
if (GetLastError()==ERROR_ALREADY_EXISTS)
{
printf("有一个实例存在");
HANDLE hOpen=OpenSemaphore(SEMAPHORE_MODIFY_STATE,FALSE,TEXT("125096")); //SEMAPHORE_ALL_ACCESS SEMAPHORE_MODIFY_STATE
if (hOpen)
{
if (ReleaseSemaphore(hOpen,1,NULL))
{
printf("OK\n");
}
else
{
int a=GetLastError();
//a=288
//企图释放并非呼叫方所拥有的多用户终端运行程序。
printf("NO\n");
}
}
}
}
else
{
printf("创建失败\n");
}
getchar();
CloseHandle(hMutex);
return 0;
}
进程间互斥CreateSemaphore
最新推荐文章于 2022-04-11 19:17:59 发布