Книга: UNIX: взаимодействие процессов
Программа msgsnd
Программа msgsnd
Программа msgsnd приведена в листинге 6.3. Она помещает в очередь одно сообщение заданной длины и типа.
Мы создаем указатель на структуру msgbuf общего вида, а затем выделяем место под реальную структуру (буфер записи) соответствующего размера, вызвав calloc. Эта функция инициализирует буфер нулем.
Листинг 6.3. Помещение сообщения в очередь System V
//svmsg/msgsnd.c
1 #include "unpipc.h"
2 int
3 main(int argc, char **argv)
4 {
5 int mqid;
6 size_t len;
7 long type;
8 struct msgbuf *ptr;
9 if (argc != 4)
10 err_quit("usage: msgsnd <pathname> <#bytes> <type>");
11 len = atoi(argv[2]);
12 type = atoi(argv[3]);
13 mqid = Msgget(Ftok(argv[1], 0), MSG_W);
14 ptr = Calloc(sizeof(long) + len, sizeof(char));
15 ptr->mtype = type;
16 Msgsnd(mqid, ptr, len, 0);
17 exit(0);
18 }
- Программа msgcreate
- Программа msgrcv
- Программа msgrmid
- Программа msgrcvid
- Программа «Тайный покупатель»
- Программа Victoria
- Подпрограмма обработки прерывания
- Магическая программа, или Беспорядок по расписанию
- Что делать, если вместо русских букв в программах – непонятные символы?
- Как называется программа, которая устанавливает Windows за 5 минут?
- Программа shmget
- Какая программа позволяет создавать документы формата PDF?