什么';使用semget/semctl来使用信号量与使用sem_init/post/wait的区别是什么?

什么';使用semget/semctl来使用信号量与使用sem_init/post/wait的区别是什么?,c,semaphore,C,Semaphore,我想知道为什么我应该使用其中一个,以及哪一个是最佳实践 我知道它们的用途是不同的,但根据我的经验,我没有发现使用其中一种而不是另一种有任何优势 是否有任何理由避免使用实现(代码可读性除外)?来自不同版本UNIX的不同APIsemctl等来自System V,而sem_init等来自POSIX 虽然它们可以用于相同的事情,但它们彼此不兼容。例如,您不能将semctl与sem\u post混合使用

我想知道为什么我应该使用其中一个,以及哪一个是最佳实践

我知道它们的用途是不同的,但根据我的经验,我没有发现使用其中一种而不是另一种有任何优势


是否有任何理由避免使用实现(代码可读性除外)?

来自不同版本UNIX的不同API
semctl
等来自System V,而
sem_init
等来自POSIX

虽然它们可以用于相同的事情,但它们彼此不兼容。例如,您不能将
semctl
sem\u post
混合使用