Инициализация переменной окружения 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 задает имя почтового ящика для обмена ядра
СУБД ЛИНТЕР с клиентскими приложениями.
Значение переменной окружения LINTER_MBX должно быть строковым числом
в диапазоне от 1 до 65535 (для ОС Linux) или любым строковым значением, использующимся
для пути к файлам, за исключением символа «/» (для ЗОСРВ Нейтрино).
Оно не должно совпадать ни с одним из значений для существующих почтовых ящиков или других механизмов
обмена в ОС. В случае неустановленного явно данной функцией значения поля 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");
}