l3.libnazgul/src/queueElemCreate.c

31 lines
671 B
C
Raw Normal View History

2004-02-23 21:01:59 +00:00
#include "libnazgul.h"
#include "ids.h"
2020-03-03 23:06:43 +00:00
int msgQueueElemCreate(msgQueueElemId finalQueueElemId,
msgQueueId queueId, int counter)
{
msgQueueElemId queueElemId;
int queueElemFd;
2004-02-23 21:16:05 +00:00
2020-03-03 23:06:43 +00:00
msgQueueElemIdIntern(queueElemId, queueId, counter);
strcpy(finalQueueElemId, queueElemId);
2004-02-23 21:16:05 +00:00
2020-03-03 23:06:43 +00:00
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;
}
2004-02-23 21:16:05 +00:00
2020-03-03 23:06:43 +00:00
if (ftruncate(queueElemFd, sizeof(msgQueueElem)) < 0) {
NZG_ERROR("ftruncate", queueElemId);
goto ERROR;
}
2004-02-23 21:19:20 +00:00
2020-03-03 23:06:43 +00:00
close(queueElemFd);
return 0;
ERROR:
return -1;
2004-02-23 21:01:59 +00:00
}