Consider this code:
struct sembuf s_op[2]; s_op[0].sem_num = old; s_op[0].sem_op = 1; s_op[0].sem_flg = 0; s_op[1].sem_num = new; s_op[1].sem_op = -1; s_op[1