Инициализация переменной окружения LINTER_MBX

Назначение

Сохранение в управляющей структуре LINDBCtrl значения переменной окружения LINTER_MBX.

Синтаксис

 
L_LONG LINDBCtrlSetLinterMbx(t_LINDBCtrl* LINDBCtrl, char* LinterMbx);

Входные данные

Входными данными являются:

  1. инициализированная управляющая структура LINDBCtrl;

  2. значение переменной окружения LINTER_MBX. Допустимое значение: строка длиной не более 1024 байт (должна заканчиваться двоичным нулем).

Выходные данные

Выходными данными является управляющая структура LINDBCtrl.

В управляющей структуре будут возвращены:

Имя поля Значение
LinterMbx Значение переменной окружения LINTER_MBX
RetStatus Библиотечный код завершения
SysStatus 0

Описание

Функция сохраняет в динамической памяти, указатель на которую помещается в поле LinterMbx управляющей структуры LINDBCtrl, значение почтового ящика для обмена, которое будет использовано при дальнейшей работе. Функция не затрагивает переменную окружения LINTER_MBX: не устанавливает её в ОС и не переопределяет ранее установленное в ОС значение.

Переменная окружения LINTER_MBX задает имя почтового ящика для обмена ядра СУБД ЛИНТЕР с клиентскими приложениями. Её значение должно быть строковым числом в диапазоне от 1 до 65535 (для ОС Linux, Unix) или любым строковым значением, использующимся для пути к файлам, за исключением символа «/» (для ЗОСРВ «Нейтрино»). Оно не должно совпадать ни с одним из значений для существующих почтовых ящиков или других механизмов обмена в ОС. В случае неустановленного явно данной функцией значения поля LinterMbx в дальнейшем используется значение, установленное с помощью переменных окружения ОС или по умолчанию (20561 – для ОС Linux, linter – для ЗОСРВ «Нейтрино»).

Изменение значения данного поля может быть использовано для запуска нескольких ядер СУБД ЛИНТЕР на одном компьютере (см. документ «СУБД ЛИНТЕР. Сетевые средства»).

Возвращаемые значения

Функция возвращает:

  • 0 – нормальное завершение;

  • -1 – значение поля LinterMbx не инициализировано.

Коды завершения

Код Описание
E_LINCTRL_NOINIT Управляющая структура LINDBCtrl не инициализирована
E_LINCTRL_NOMEM Невозможность выделения динамической памяти для поля LinterMbx управляющей структуры
E_LINCTRL_INVARG Недопустимое значение аргумента LinterMbx (NULL-значение)

Пример

#include < stdio.h >
#include < stdlib.h >
#include < string.h >
#include "linctrl.h"
#include "exlib.h"

void  PrintError(t_LINDBCtrl *LINDBCtrl);

void  main()
  {
  t_LINDBCtrl LINDBCtrl;
  CHAR  LinterPath[]="/usr/linter";
  CHAR  LinterMbx[]="30000";
  LONGINT Err;
  Err=LINDBCtrlInit(&LINDBCtrl,LinterPath);
  if (Err != NORMAL)
    PrintError(&LINDBCtrl);
  printf("Initialisation LINDBCtrl\n");
  Err= LINDBCtrlSetLinterMbx (&LINDBCtrl,LinterMbx);
  if (Err != NORMAL)
    PrintError(&LINDBCtrl);
  printf("Set LinterMbx\n");
  printf("End Example\n");
  }