linux信号量的问题

对于Linux下有两套信号量处理的函数一个是semget()这些,还有一些是sema_init()、up()、down ()这些。请问这些有什么区别。为什么还有两套啊。本人是初学者。为了提问把积分都用完了。望好心人给予答复!!小弟不胜感激。再拜致谢!!!!

sem_init:初始化信号量sem_t,初始化的时候可以指定信号量的初始值,以及是否可以在多进程间共享。
sem_wait:一直阻塞等待直到信号量>0。
sem_timedwait:阻塞等待若干时间直到信号量>0。
sem_post:使信号量加1。
sem_destroy:释放信号量。和sem_init对应。 答案补充 关于各函数的具体参数请用man查看,如man sem_init可查看该函数的帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-02
int sem_init是创建信号灯的API,up().down()我不知道是什么,但是点灯是int sem_post(),灭灯是int sem_wait和int sen_trywait,后者是前者的非阻塞形式
第2个回答  2018-03-14
sem_init APP编程时使用,sema_init写驱动时使用,具体去看下深入理解linux内核那本书相关内容
相似回答