如何将POSIX sem_t信号量增加1以上?

时间:2011-02-25 10:57:47

标签: c pthreads semaphore

我可以让sem_t(信号量)对象获取大于1的值吗?因为sem_post只增加1.是否有sem_set?

1 个答案:

答案 0 :(得分:1)

是的,sem_t的值可以大于1.您可以使用sem_init将信号量初始化为abitrary值。引自this link

  

要初始化信号量,请使用   sem_init():

  int sem_init(sem_t *sem, int pshared, unsigned int value); 
     
      
  • sem指向一个信号量对象   初始化
  •   
  • pshared是一面旗帜   表明是否   信号量应与之共享   fork()ed进程。 LinuxThreads的确如此   目前不支持共享   信号量
  •   
  • value是初始值   将信号量设置为
  •   
     

的例子   使用方法:

  sem_init(&sem_name, 0, 10);

我不知道任何可以将sem_t增加任意值的函数。