Скачиваний:
9
Добавлен:
01.05.2014
Размер:
1.08 Кб
Скачать

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <iostream.h>
#include "l4.h"
 int main()
  {
   Message *msgptr;
   key_t key;
   int shmid, semid;
   if((key = ftok("server", 'A'))==0)
    {cout<<endl<<"Nevozmojno polu4it klu4";exit(1);}
   
   if((shmid=shmget(key, sizeof(Message), PERM | IPC_CREAT))<0)
    {cout<<endl<<"Nevozmojno sozdat oblast";exit(1);}
   
   if((msgptr=(Message *)shmat(shmid,0,0))<0)
    {cout<<endl<<"Oshibka prisoedinenia";exit(1);}
   
   if((semid=semget(key, 2, PERM | IPC_CREAT)) < 0)
    {
     cout<<endl<<"Nevozmojno sozdat semafor";
     }   
   
   if(semop(semid, &proc_wait[0], 1)<0)
    {cout<<endl<<"Nevozmojno vipolnit operaciu!";
      exit(1);}
   
   if(semop(semid, &mem_lock[0], 2)<0)
    {cout<<endl<<"Nevozmojno vipolnit operaciu!";
     exit(1);}

   cout<<endl<<msgptr->buff;
   
   if(semop(semid, &mem_unlock[0], 1)<0)
    {cout<<endl<<"Nevozmojno vipolnit operaciu!";
     exit(1);}
   
   if (shmdt(msgptr)<0)
    {cout<<endl<<"Oshibka otsoedinenia";exit(1);}

   exit(0);

 }


Соседние файлы в папке 4