ATMI C Function Reference
tuxreadenv()
—Adds variables to the environment from a file.
#include <atmi.h>
int tuxreadenv(char *file, char *label)
tuxreadenv()
reads a file containing environment variables and adds them to the environment, independent of platform. These variables are available using tuxgetenv()
and can be reset using tuxputenv()
.
The format of the environment file is as follows:
variable
=
value
set
variable
=
value
where variable
must begin with an alphabetic or underscore character and contain only alphanumeric or underscore characters, and value
may contain any character except newline.
value
, strings of the form $
{env
} are expanded using variables already in the environment (forward referencing is not supported and if a value is not set, the variable is replaced with the empty string). Backslash (\) may be used to escape the dollar sign and itself. All other shell quoting and escape mechanisms are ignored and the expanded value
is placed into the environment.
[
label
]
where label
follows the same rules for variable
above (lines with invalid label
values are ignored).
If file
is NULL, then a default filename is used. The fixed filenames are as follows:
DOS, Windows, OS2, NT: C:\TUXEDO\TUXEDO.ENV
or
MAC: TUXEDO.ENV in the system preferences directory
NETWARE: SYS:SYSTEM\TUXEDO.ENV
POSIX: /usr/tuxedo/TUXEDO.ENV /var/opt/tuxedo/TUXEDO.ENV
If label
is NULL, then only variables in the global section are put into the environment. For other values of label
, the global section variables plus any variables in a section matching the label
are put into the environment.
An error message is printed to the userlog()
if there is a memory failure, if a non-NULL filename does not exist, or if a non-NULL label does not exist.
A thread in a multithreaded application may issue a call to tuxreadenv()
while running in any context state, including TPINVALIDCONTEXT
.
The following is an example environment file.
TUXDIR=/usr/tuxedo
[application1]
;this is a comment
/* this is a comment */
#this is a comment
//this is a comment
FIELDTBLS=app1_flds
FLDTBLDIR=/usr/app1/udataobj
[application2]
FIELDTBLS=app2_flds
FLDTBLDIR=/usr/app2/udataobj
If tuxreadenv()
cannot obtain enough space, via malloc()
, for an expanded environment, or if it cannot open and read a file with a non-NULL name, it returns a non-zero integer. Otherwise, tuxreadenv()
returns zero.
In the DOS, Windows, OS/2, and NetWare environments, tuxreadenv()
converts all environment variable names to uppercase.