Код процесса-клиента

We use cookies. Read the Privacy and Cookie Policy

Код процесса-клиента

Как было сказано, клиент открывает файл (функция open()), после чего использует MsgSend(), отсылая сообщения и получая ответы.

#include <stdio.h>

#include <stdlib.h>

#include <fcntl.h>

#include <sys/neutrino.h>

#include <sys/iomsg.h>

#include <locale.h>

#include <string.h>

#include "/home/ZZZ/TESTS/MR/MessTest.h"

int main() {

 int fdRM; // Дескриптор соединения с менеджером ресурсов

 char BufferSend[MESSIZE_MAX], BufferReply[MESSIZE_MAX];

 setlocale(LC_CTYPE, "C-TRADITIONAL");

 if (fdRM = open(strcat(strcpy(BufferSend, NET_REG),

  "/dev/MESSTEST/RM"), O_RDWR)) == -1)) {

  printf("Клиент не нашел имени менеджера! ");

  fflush(stdout);

  return(-1);

 }

 /* Заполнение заголовка - первых 4-х байт сообщения, содержащего

    инвентаризационную метку данного процесса (описаны в "IRL32.h") */

 ((int *)(BufferSend))[0] = 0x5002;

 /* Заполнение сообщения */

 strcpy(BufferSend + 4, "Так вот ты какой, Менеджер Ресурсов!");

 if (MsgSend(fdRM, BufferSend, 100, BufferReply, 100) == -1)

  printf("Клиенту не удалось передать сообщение ");

 else

  printf("Клиент передал сообщение и получил <%s> ", BufferReply);

 fflush(stdout);

 close(fdRM);

 return(0);

}

Данный текст является ознакомительным фрагментом.