l3.libnazgul/src/spaceListElemCreate.c

45 lines
1.1 KiB
C
Raw Normal View History

2004-02-23 09:42:25 +00:00
#include "libnazgul.h"
#include "ids.h"
2004-02-23 09:42:25 +00:00
// cree un nouvel elemen
2020-03-03 23:06:43 +00:00
int msgSpaceListElemCreate(msgSpaceListElemId listElemId, msgSpace * space)
2004-02-25 17:54:51 +00:00
{
2020-03-03 23:06:43 +00:00
int listElemFd;
msgSpaceListElem *listElem;
msgSpaceListElemIdIntern(listElemId, space->externId);
2004-02-25 17:54:51 +00:00
2020-03-03 23:06:43 +00:00
listElemFd = shm_open(listElemId,
O_RDWR | O_CREAT | O_EXCL | O_TRUNC,
SHM_DEFAULT_MODE);
2004-02-25 17:54:51 +00:00
2020-03-03 23:06:43 +00:00
if (listElemFd == -1) {
NZG_ERROR("shm_open : msgSpaceListElem creation", listElemId);
goto ERROR;
}
2004-02-25 17:54:51 +00:00
2020-03-03 23:06:43 +00:00
if (ftruncate(listElemFd, sizeof(msgSpaceListElem)) < 0) {
NZG_ERROR("ftruncate", listElemId);
goto ERROR;
}
2004-02-25 17:54:51 +00:00
2020-03-03 23:06:43 +00:00
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;
2004-02-23 09:42:25 +00:00
};