l3.libnazgul/src/queueElemCreate.c

31 lines
671 B
C

#include "libnazgul.h"
#include "ids.h"
int msgQueueElemCreate(msgQueueElemId finalQueueElemId,
msgQueueId queueId, int counter)
{
msgQueueElemId queueElemId;
int queueElemFd;
msgQueueElemIdIntern(queueElemId, queueId, counter);
strcpy(finalQueueElemId, queueElemId);
queueElemFd = shm_open(queueElemId,
O_RDWR | O_CREAT | O_EXCL | O_TRUNC,
SHM_DEFAULT_MODE);
if (queueElemFd == -1) {
NZG_ERROR("shm_open : msgQueueElem creation", queueElemId);
goto ERROR;
}
if (ftruncate(queueElemFd, sizeof(msgQueueElem)) < 0) {
NZG_ERROR("ftruncate", queueElemId);
goto ERROR;
}
close(queueElemFd);
return 0;
ERROR:
return -1;
}