30 lines
671 B
C
30 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;
|
|
}
|