全局命名事件在Unix中等效

时间:2011-09-27 19:27:44

标签: winapi unix synchronization ipc

Unix中等效的全局命名事件对象是什么?我需要在unix中创建一个类似事件的命名对象,以便另一个进程可以设置它

Win32中的伪代码:

HANDLE hEvent=CreateEvent(...,"Global\\CSAPP");
while(1)
{
    WaitForSingleObject(hEvent);
    ...
}

在另一个过程中:

HANDLE hEvent=OpenEvent(...,"Global\\CSAPP");
SetEvent(hEvent);

1 个答案:

答案 0 :(得分:3)

您可能正在寻找named semaphore

int initial = 0;
sem_t *sem = sem_open("/global_name", O_CREAT, 0644, initial);

/* Down ("Wait"). */
sem_wait(sem);

/* Up ("Set") . */
sem_post(sem);