#include "libnazgul.h" // fonction pour la creation d'une liste de msgSpace // cree un shm qui connait l'element de debut de liste // et l'element de fin de liste. // il ne se crée que s'il n'en existe pas deja un. // // crée également un sémaphore de gestion de liste // a verouiller avant toute modification int msgSpaceListInit(){ int descMemory; sem_t * spacesListSemFd; msgSpaceListSemId spacesListSemId; msgSpaceListElemId spacesListId; /*Fait un segment de memoir partager sur espace de listelement*/ descMemory=shm_open(spacesListId,O_RDWR|O_CREAT|O_EXCL|O_TRUNC,0600); if (descMemory == -1){ NZG_ERROR("shm_open",spacesListId); return -1; } /*Creation de semaphore*/ spacesListSemFd=sem_open(spacesListSemId,O_CREAT|O_EXCL,0666,1024); if(spacesListSemFd==SEM_FAILED){ NZG_ERROR("sem_open",spacesListSemId); return -1; } /*Verouille le semaphore*/ if(sem_wait(spacesListSemFd)==-1){ NZG_ERROR("sem_wait",spacesListSemId); return -1; } return 0; };