System V提供的三种IPC进制,有异曲同工之妙。
创建信号量结合
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
int semget(key_t key, int nsems, int semflg);
参数含义,与msgget类似,只是比它多了第二个参数。
宏名 | 描述 |
---|---|
IPC_CREAT | 如果key不存在,则创建(类似open函数的O_CREAT) |
IPC_EXCL | 如果key存在,则返回失败(类似open函数的O_EXCL) |
IPC_NOWAIT | 如果需要等待,则直接返回错误 |