Служебная программа 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, чтобы она могла отвечать на запросы.