Witam
W czasie uruchomienia programu wyskakuje mi błąd:
nie udalo sie utworzyc pamieci wspolnej : Success
Wie może gdzie jest problem ??
#include <iostream>
#include <stdio.h>
#include <cstdlib>
#include <ctime>
#include <signal.h>
#include "dziel.h"
using namespace std;
bool czyKoniec = true;
void siga(int sig)
{
cout << "Serwer zostanie wylaczony, kiedy wszyscy klienci dostana odpowiedz od serwera " << endl;
czyKoniec = false;
}
int main(int argc, char* argv[])
{
(void) signal(SIGINT, siga);
int ls;
Dane d;
int shmid;
void *pw;
//tworzenie pamieci wspolnej
if ( ((shmid=shmget(klucz,sizeof(d), IPC_CREAT|prawa)) == -1 ) && (errno == EEXIST))
{
shmctl(shmid, IPC_RMID, NULL);
//bezwzgledne utworzenie kolejki
shmid = shmget(klucz, sizeof(d), IPC_CREAT|IPC_EXCL|prawa);
}
else
{
perror("nie udalo sie utworzyc pamieci wspolnej ");
exit(2);
}
do
{
//Gdy wartość zmiennej addres jest równa NULL system sam nadawartość adresowi po którym widziany jest dołączany segment pamięci
if ( (pw=shmat(shmid,0,0)) == (char*)-1) perror("Nie udestepniono segmentu");
bcopy(&d, pw, sizeof(d));
cout << "czas odebrany z pamieci wynosi " << d.pid << endl;
}while(czyKoniec == true);
shmctl(shmid, IPC_RMID, NULL);
}
Z góry dziękuję za pomoc.