gpt4 book ai didi

c - 有没有办法在 POSIX 中增加一个信号量并减少另一个信号量?

转载 作者:行者123 更新时间:2023-12-04 08:21:24 24 4
gpt4 key购买 nike

有没有办法在一个(原子)操作中对不同的信号量进行多次递增/递减?
我看到在 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 中做同样的事情?

最佳答案

Is there a way to do same using semaphore.h?


不,这是不可能的。

Is there a way to do the same in POSIX?


您发布的代码使用了 POSIX 的 XSI 扩展。通常,即使标准规定,如果您在 POSIX 兼容平台上,您可以放心地使用 XSI 扩展,因为它是可用的。

关于c - 有没有办法在 POSIX 中增加一个信号量并减少另一个信号量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65482485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com