Questa funzione è una variante non bloccante della precedente ed è utilizzata principalmente per la decrementazione del valore del semaforo. Se questo, infatti, non è già uguale a zero una chiamata a questa funzione comporta una diminuzione di un'unità del valore del semaforo. 23.13 In caso di successo viene ritornato 0, altrimenti (nel caso il valore del semaforo fosse già 0) viene restituito immediatamente -1 ed il valore della variabile ERRNO viene settato a EAGAIN.