|
The contents of this page are licensed under the following license
Operating System
IPC semaphores |
#include <stdio.h>
#include <sys/sem.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
int id;
struct sembuf op;
if (argc < 2)
{
printf("usage: %s <sem_op_value>\n", argv[0]);
exit(1);
}
/* create semaphore */
id = semget(0x13, 1, 0600 | IPC_CREAT);
if (id == -1)
{
perror("Error create semaphore");
exit(1);
}
printf("old value: %d\n", semctl(id, 0, GETVAL, NULL));
/* set semaphore operation */
op.sem_num = 0;
op.sem_op = atoi(argv[1]);
op.sem_flg = 0;
/* perform operation */
semop(id, &op, 1);
printf("new value: %d\n", semctl(id, 0, GETVAL, NULL));
}
|
August, 23rd 2006
© Michał Kalewski