POSIX - 无名信号量(匿名信号量)
使用范围:线程间同步,相关进程间同步
此文转自:http://blog.csdn.net/jiebaoabcabc/article/details/37885659
一、函数介绍
1.初始化无名信号量
#include<semaphore.h>
int sem_init(sem_t *sem, int pshared, unsigned int value);
函数功能:sem_init()初始化一个定位在 sem的匿名信号量。
返回值:sem_init()成功时返回 0;错误时,返回 -1,并把 errno设置为合适的值。
错误:EINVAL
value 超过 SEM_VALUE_MAX。
ENOSYS
pshared 非零,但系统还没有支持进程共享的信号量。
输入参数:
1.pshared
pshared==0用于同一多线程的同步;
若pshared>0 用于多个相关进程间的同步(即由fork产生的)
如果 pshared是非零值,那么信号量将在进程之间共享,并且应该定位共享内存区域(见 shm_open(3)、mmap(2) 和 shmget(2))。(因为通过 fork(2) 创建的孩子继承其父亲的内存映射,因此它也可以见到这个信号量。所有可以访问共享内存区域的进程都可以用 sem_post(3)、sem_wait(3) 等等操作信号量。
2.value