37 lines
888 B
C
37 lines
888 B
C
|
#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<63>e que s'il n'en existe pas deja un.
|
|||
|
//
|
|||
|
// cr<63>e <20>galement un s<>maphore de gestion de liste
|
|||
|
// a verouiller avant toute modification
|
|||
|
int msgSpaceListInit();
|
|||
|
|
|||
|
int msgSpaceListInit(){
|
|||
|
int descMemory;
|
|||
|
msgSpaceListElemId idList;
|
|||
|
/*Fait un segment de memoir partager sur espace de listelement*/
|
|||
|
if( (descMemory=shm_open(idList,O_RDWR|O_CREAT|O_EXCL|O_TRUNC,0600))==-1){
|
|||
|
printf("Erreur de shmopen");
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*Creation de semaphore*/
|
|||
|
sem=sem_open(spaceList,O_CREAT|O_EXCL,0666,1024);
|
|||
|
if(sem==SEM_FAILED){
|
|||
|
printf("erreur de semaphore");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
/*Verouille le semaphore*/
|
|||
|
if(sem_wait(sem)==-1){
|
|||
|
printf("erreur pour l'ajout d'un semaphore");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
return 0;
|
|||
|
};
|
|||
|
|