#include #include #include #include #include #include int main() { struct mq_attr mqattr = { .mq_maxmsg = 1, .mq_msgsize = 1, }; mqd_t mq = mq_open("/mq", O_RDWR | O_CREAT, 0755, &mqattr); int fpid = fork(); if (fpid == 0) { char tmp[1]; while (1) { mq_receive(mq, tmp, 1, NULL); printf("child\n"); } } else { while (1) { printf("parent\n"); mq_send(mq, "", 1, 0); sleep(1); } } mq_close(mq); if (fpid != 0) mq_unlink("/mq"); return 0; }