Листинг Г.1. Вывод идентификатора и порядкового номера слота
//svmsg/slotseq.c
1 #include "unpipc.h"
2 int
3 main(int argc, char **argv)
4 {
5 int i, msqid;
6 struct msqid_ds info;
7 for (i = 0; i < 10; i++) {
8 msqid = Msgget(IPC_PRIVATE, SVMSG_MODE | IPC_CREAT);
9 Msgctl(msqid, IPC_STAT, &info);
10 printf("msqid = %d, seq = %lu\n", msqid, info.msg_perm.seq);
11 Msgctl(msqid, IPC_RMID, NULL);
12 }
13 exit(0);
14 }
2. Первый вызов msgget задействует первую свободную очередь сообщений, порядковый номер которой имеет значение 20 после двукратного запуска программы из листинга 3.2, и вернет идентификатор 1000. Если предположить, что следующая доступная очередь сообщений никогда ранее не использовалась, ее порядковый номер будет иметь значение 0, а возвращаться будет идентификатор 1.
3. Программа приведена в листинге Г.2.