c-在POSIX中,有没有一种方法可以原子地增加一个信号量并减少另一个信号



有没有一种方法可以在一个(原子(操作中对不同的信号量进行多次递增/递减?

我看到在SysV中可以做到这一点,我想知道是否有一种方法可以使用POSIX API来做同样的事情。

以下是我想做的(在SysV中(:

sem[0].sem_num = 0;
sem[0].sem_op  = 1;
sem[0].sem_flg = 0;
sem[1].sem_num = 1;
sem[1].sem_op  = -1;
sem[1].sem_flg = 0;
semop(semid, sem, 2)

在POSIX中有没有同样的方法?

是否有使用semaphore.h进行同样操作的方法?

不,这是不可能的。

在POSIX中有没有同样的方法

您发布的代码使用了POSIX的XSI扩展。一般来说,即使是标准也规定,如果您在POSIX兼容平台上,您可以放心地使用XSI扩展。

相关内容

  • 没有找到相关文章

最新更新