summaryrefslogtreecommitdiff
path: root/src/ipc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipc.c')
-rw-r--r--src/ipc.c28
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