The Env
program is intended for passing arguments and environment variables to started processes. When started, each process automatically sends a request to the Env
process and receives the necessary data.
A process query to Env
redefines the arguments and environment variables received through Einit
.
To use the Env
program in your solution, you need to do the following:
1. Develop the code of the Env
program by using macros from env/env.h
.
2. Build the binary file of the Env
program by linking it to the env_server
library.
3. In the init description, indicate that the Env
process must be started and connected to the selected processes (Env
acts a server in this case). The channel name is defined by the ENV_SERVICE_NAME
macro declared in the env/env.h
file.
4. Include the Env
binary file in the solution image.
Env program code
The code of the Env
program utilizes the following macros and functions declared in the env/env.h
file:
ENV_REGISTER_ARGS(name,argarr)
– arguments from the argarr
array are passed to the process named name
(the maximum size of one element is 256 bytes).ENV_REGISTER_VARS(name,envarr)
– environment variables from the envarr
array are passed to the process named name
(the maximum size of one element is 256 bytes).ENV_REGISTER_PROGRAM_ENVIRONMENT(name,argarr,envarr)
– arguments and environment variables are passed to the process named name
.envServerRun()
– initialize the server part of the Env
program so that it can respond to requests.