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
setvariable=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.ENVor
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.
|
|
|