[<<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  }