[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Пример сообщений - отправитель
Этот пример состоит из двух отдельных процессов - отправителя
сообщений и их получателя.
1-7 Необходимые include-файлы.
12 Объявить переменную для значения ключа.
13 Объявить переменную для идентификатора очереди сообщений.
14-17 Сообщение представляет собой структуру. Первое поле
должно быть длинным целым. Остаток сообщения выбирается
пользователем.
24-27 Создать ключ, основываясь на текущей директории.
28 Создать очередь сообщений.
ПРИМЕР СООБЩЕНИЙ - ОТПРАВИТЕЛЬ
1 #include <sys/types.h>
2 #include <string.h>
3 #include <unistd.h>
4 #include <stdlib.h>
5 #include <stdio.h>
6 #include <sys/ipc.h>
7 #include <sys/msg.h>
8 #define MAX_SEND_SZ 30
9 static const long Done = 99L;
10 main()
11 {
12 key_t key;
13 int mid;
14 struct msgbuf {
15 long mtype;
16 char mtext[40];
17 } buf;
18 static char *strings[3] = {
19 "hello",
20 "how are you",
21 "good-bye"
22 };
23 int i, rtn;
24 if((key = ftok(".", 'a')) == -1){
25 perror("Can't form key");
26 exit(1);
27 }
28 mid = msgget(key, IPC_CREAT | 0660);
29 if (mid == -1) {
30 perror("Sender can't make msg queue");
31 exit(2);
32 }