#include #include #include #include #include "ex5.h" int main(int argc, char* argv[]) { const struct mq_attr mqattr = { .mq_maxmsg = 10, .mq_msgsize = 64, }; mqd_t mq = mq_open(queueName, O_WRONLY | O_CREAT, 0700, &mqattr); int fd = open(argv[1], O_RDONLY); char buf[mqattr.mq_msgsize]; int amount; while ((amount = read(fd, buf, mqattr.mq_msgsize))) { if (amount < mqattr.mq_msgsize) buf[amount] = '\0'; mq_send(mq, buf, mqattr.mq_msgsize, 0); } mq_send(mq, "", 1, 0); close(fd); mq_close(mq); mq_unlink(queueName); return 0; }