Листинг 5.6. Программа mqreceive
//pxmsg/mqreceive.с
1 #include "unpipc.h"
2 int
3 main(int argc, char **argv)
4 {
5 int с flags;
6 mqd_t mqd;
7 ssize_t n;
8 uint_t prio;
9 void *buff;
10 struct mq_attr attr;
11 flags = O_RDONLY;
12 while ((c = Getopt(argc, argv, "n")) != –1) {
13 switch (c) {
14 case 'n':
15 flags |= O_NONBLOCK;
16 break;
17 }
18 }
19 if (optind != argc – 1)
20 err_quit("usage: mqreceive [ –n ]
21 mqd = Mq_open(argv[optind], flags);
22 Mq_getattr(mqd, &attr);
23 buff = Malloc(attr.mqjnsgsize);
24 n = Mq_receive(raqd, buff, attr.mq_msgsize, &prio);
25 printf("read %ld bytes, priority = %u\n", (long) n, prio);
26 exit(0);
27 }