45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
#include "libnazgul.h"
|
|
#include "ids.h"
|
|
|
|
// cree un nouvel elemen
|
|
int msgSpaceListElemCreate(msgSpaceListElemId listElemId, msgSpace * space)
|
|
{
|
|
|
|
int listElemFd;
|
|
msgSpaceListElem *listElem;
|
|
msgSpaceListElemIdIntern(listElemId, space->externId);
|
|
|
|
listElemFd = shm_open(listElemId,
|
|
O_RDWR | O_CREAT | O_EXCL | O_TRUNC,
|
|
SHM_DEFAULT_MODE);
|
|
|
|
if (listElemFd == -1) {
|
|
NZG_ERROR("shm_open : msgSpaceListElem creation", listElemId);
|
|
goto ERROR;
|
|
}
|
|
|
|
if (ftruncate(listElemFd, sizeof(msgSpaceListElem)) < 0) {
|
|
NZG_ERROR("ftruncate", listElemId);
|
|
goto ERROR;
|
|
}
|
|
|
|
close(listElemFd);
|
|
listElem = msgSpaceListElemOpen(listElemId);
|
|
if (listElem == NULL) {
|
|
NZG_ERROR("msgSpaceListElemOpen", listElemId);
|
|
goto ERROR;
|
|
}
|
|
strcpy(listElem->id, listElemId);
|
|
strcpy(listElem->next, listElemId);
|
|
strcpy(listElem->spaceId, space->id);
|
|
printf("[ ListElem : id %s,next: %s, Sid: %s ]\n",
|
|
listElem->id, listElem->next, listElem->spaceId);
|
|
if (msgSpaceListElemClose(listElem) < 0) {
|
|
NZG_ERROR("msgSpaceListElemClose", listElemId);
|
|
}
|
|
return 0;
|
|
ERROR:
|
|
return -1;
|
|
|
|
};
|