Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
26.05.2014
Размер:
691 б
Скачать
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>

#define key 666

static struct sembuf lock[2]={0,0,0,0,1,0};
static struct sembuf ulock[1]={0,-1,0};

int main()
{
int	semid;
char	ch;

semid=semget(key,1,IPC_CREAT | IPC_EXCL);
if (semid!=-1)
{
printf("Setting semafor\nResource blocking...\n");
semop(semid,&lock[0],2);
printf("To unlock resource press 'q'...\n");
while (ch=getchar()!='q'){}
printf("Unlocking recsource ... \n");
semop(semid,&ulock[0],1);
printf("Resource is unlocked...\n");
printf("Removing semafor...\n");
semctl(semid,0,IPC_RMID);
}
else
{printf("Error creating semafor...\nResource locked ...\nTry later\n");
exit(-1);}
return 1;
}
Соседние файлы в папке sem1
  • #
    26.05.201431 б5q.sh
  • #
    26.05.2014691 б4sem.c
  • #
    26.05.201412.71 Кб5sem.out