Инициализация переменной окружения LINTER_MBX
Назначение
Сохранение в управляющей структуре LINDBCtrl значения переменной окружения LINTER_MBX
.
Синтаксис
L_LONG LINDBCtrlSetLinterMbx(t_LINDBCtrl* LINDBCtrl, char* LinterMbx);
Входные данные
Входными данными являются:
-
инициализированная управляющая структура LINDBCtrl;
-
значение переменной окружения
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"); }