Unix中等效的全局命名事件对象是什么?我需要在unix中创建一个类似事件的命名对象,以便另一个进程可以设置它
Win32中的伪代码:
HANDLE hEvent=CreateEvent(...,"Global\\CSAPP");
while(1)
{
WaitForSingleObject(hEvent);
...
}
在另一个过程中:
HANDLE hEvent=OpenEvent(...,"Global\\CSAPP");
SetEvent(hEvent);
答案 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);