1.创建信号量 int sem_init(sem_t *sem,int pshared,unsigned int value):
执行成功返回0,失败EOF
示例 sem_init(&sem, 0, 0);
sem 指向要初始化的信号量对象,传地址
pshared 0——线程间使用 ,1——进程间使用
val 信号量初值
2.P操作 int sem_wait(sem_t *sem);
成功返回0,失败EOF
示例 sem_wait(&bin_sem);
P操作(申请资源)如果信号量大于0,申请资源的任务继续进行,信号量的值减1
P操作可能引起系统阻塞,v操作一般不会引起阻塞
3.V操作 int sem_post(sem_t *sem);
成功返回0,失败EOF
示例 sem_post(&bin_sem);
V操作(释放资源)信号量的值加1
4.删除信号量 int sem_destroy(sem_t *sem);
成功则返回 0,失败返回 -1