#include #include #include #include #include int main(int argc, char *argv[]) { int sem_id, i; struct sembuf op_on[2]; struct sembuf op_off; sem_id = semget(123, 1, IPC_CREAT | 0600); if (sem_id < 0) { perror("semget"); exit(-1); } op_on[0].sem_num = 0; op_on[0].sem_op = 0; op_on[0].sem_flg = 0; op_on[1].sem_num = 0; op_on[1].sem_op = 1; op_on[1].sem_flg = SEM_UNDO; op_off.sem_num = 0; op_off.sem_op = -1; op_off.sem_flg = 0; for (i = 0; i < 32769; i++) { if (semop(sem_id, op_on, 2) < 0) { perror("semop"); } if (semop(sem_id, &op_off, 1) < 0) { perror("semop"); } } return 0; }