diff options
Diffstat (limited to 'src/ipc.c')
| -rw-r--r-- | src/ipc.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/ipc.c b/src/ipc.c new file mode 100644 index 0000000..efdb8ce --- /dev/null +++ b/src/ipc.c @@ -0,0 +1,28 @@ +#ifndef IPC_C +#define IPC_C + +#include <mqueue.h> +#include <stdlib.h> + +struct mq_attr attr = { + .mq_flags = 0, + .mq_maxmsg = 10, + .mq_msgsize = 1024, + .mq_curmsgs = 0, +}; + +char* read_queue(mqd_t target) { + char* buf = malloc(attr.mq_msgsize); + int n = mq_receive(target, buf, attr.mq_msgsize, NULL); + if (n == -1) { + free(buf); + return NULL; + } + return buf; +} + +void send_queue(mqd_t target, const char* msg) { + mq_send(target, msg, sizeof(msg), 0); +} + +#endif // IPC_C |
