ВУЗ:
Составители:
118
if (argc != 2)
{
printf("usage: msgrmid <path_to_file>");
return 0;
}
mqid = msgget(ftok(argv[1], 0), 0);
msgctl(mqid, IPC_RMID, NULL);
return 0;
}
Результат запуска приведенных выше программ для случая с тремя
сообщениями в очереди:
msgcreate /tmp/no/such/file
ftok error for pathname "tmp/no/such/file" and id 0: No such file or directory
touch /tmp/testl
msgcreate /tmp/testl
msgsnd /tmp/testl 1 100
msgsnd /tmp/testl 2 200
msgsnd /tmp/testl 3 300
ipcs -qo
IPC status from <running system> as of Sat Jan 10 11:25:45 1998
T ID KEY MODE OWNER GROUP CBYTES QNUM
Message Queues:
q 100 ОхООООИЗе --rw-r–г– rstevens otherl 6 3
Сначала происходит попытка создания очереди с помощью имени не-
существующего файла. Пример показывает, что файл, указываемый в ка-
честве аргумента функции ftok, обязательно должен существовать. За-
тем создается файл /tmp/testl и используется его имя при создании очере-
ди сообщений. После этого в очередь помещаются три сообщения длиной
1, 2 и 3 байта со значениями типа 100, 200 и 300. Программа ipcs показы-
вает, что в очереди находятся 3 сообщения общим объемом 6 байт.
Теперь c помощью аргумента type при вызове msgrcv считываются
сообщения в произвольном порядке:
msgrcv -t 200 /tmp/testl
read 2 bytes, type – 200
msgrcv -t -300 /tmp/testl
Страницы
- « первая
- ‹ предыдущая
- …
- 116
- 117
- 118
- 119
- 120
- …
- следующая ›
- последняя »
