Служебная программа Env
предназначена для передачи аргументов и переменных окружения запускаемым процессам. При запуске каждый процесс автоматически отправляет запрос процессу Env
и получает необходимые данные.
Обращение процесса к Env
переопределяет аргументы и переменные окружения, полученные через Einit
.
Чтобы использовать программу Env
в своем решении, необходимо:
1. Разработать код программы Env
, используя макросы из env/env.h
.
2. Собрать бинарный файл программы Env
, скомпоновав ее с библиотекой env_server
.
3. В init-описании указать, что необходимо запустить процесс Env
и соединить с ней выбранные процессы (Env
при этом является сервером). Имя канала задается макросом ENV_SERVICE_NAME
, объявленным в файле env/env.h
.
4. Включить бинарный файл Env
в образ решения.
Код программы Env
В коде программы Env
используются следующие макросы и функции, объявленные в файле env/env.h
:
ENV_REGISTER_ARGS(name,argarr)
– передать процессу с именем name
аргументы из массива argarr
(максимальный размер одного элемента – 256 байтов);ENV_REGISTER_VARS(name,envarr)
– передать процессу с именем name
переменные окружения из массива envarr
(максимальный размер одного элемента – 256 байтов);ENV_REGISTER_PROGRAM_ENVIRONMENT(name,argarr,envarr)
– передать процессу с именем name
как аргументы, так и переменные окружения;envServerRun()
– инициализировать серверную часть программы Env
, чтобы она могла отвечать на запросы.