int semop(int NumeroSemaphore, struct sembuf *Buffer, int NbJetons);
Au besoin, le thread est momentanément suspendu ou un thread en attente est réveillé.
#include <stdio.h>
#include <sem.h>
struct sembuf Buffer;
short NumeroSemaphore;
Buffer.sem_num=1;
Buffer.sem_op=-1;
Buffer.sem_flg=0;
if (semop((int)NumeroSemaphore, &Buffer, -1)==-1)
{
...
}
...
Buffer.sem_num=1;
Buffer.sem_op=1;
Buffer.sem_flg=0;
if (semop((int)NumeroSemaphore, &Buffer, 1)==-1)
{
...
}
...
Le résultat est -1 si l'opération n'a pu être effectuée.