7.3 POSIX 信号量
POSIX 信号量用来同步进程和线程对共享资源的访问。
概述
命名信号量
打开一个命名信号量
#include <fcntl.h>
#include <sys/stat.h>
#include <semaphore.h>
/*
@brief 打开或创建一个命名信号量
@param name 标识了信号量,名字格式斜杠开头,如 /myobject
@param oflag 位掩码,标识创建还是打开一个信号量,可取
- O_CREAT 创建一个信号量
- O_EXCL 配合 O_CREAT 使用,如果已存在则创建失败
- 0 打开一个信号量
@param mode oflag 为 O_CREAT 使用,指定了权限可取
- O_RDONLY 仅读
- O_WRONLY 仅写
- O_RDWR 读写,默认
@param value 无符号整数。指定了新信号量的初值
@retrun 成功返回指向信号量的指针,否则返回 SEM_FAILED
*/
sem_t *sem_open(const char *name, int oflag, ...
/* mode_t mode, unsigned int value */);关闭一个信号量
删除一个信号量
信号量操作
等待一个信号量
发布一个信号量
获取信号量当前值
未命名信号量
初始化一个未命名信号量
销毁一个未命名信号量
信号量限制
最后更新于