有没有一种方法可以在一个(原子(操作中对不同的信号量进行多次递增/递减?
我看到在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扩展。