VMS Help
CRTL, setenv
*Conan The Librarian
|
Inserts or resets the environment variable specified by name in
the current environment list.
Format
#include <stdlib.h>
int setenv (const char *name, const char *value, int
overwrite);
name
A variable name in the environment variable list.
value
The value for the environment variable.
overwrite
A value of 0 or 1 indicating whether to reset the environment
variable, if it exists.
The setenv function inserts or resets the environment variable
name in the current environment list. If the variable name does
not exist in the list, it is inserted with the value argument. If
the variable does exist, the overwrite argument is tested. When
the overwrite argument value is:
o 0 then the variable is not reset.
o 1 then the variable is reset to value.
NOTE
Do not use the setenv, getenv, and putenv functions to
manipulate symbols and logicals. Instead, use the OpenVMS
library calls lib$set_logical, lib$get_logical, lib$set_
symbol, and lib$get_symbol. The *env functions deliberately
provide UNIX behavior, and are not a substitute for these
OpenVMS runtime library calls.
OpenVMS DCL symbols, not logical names, are the closest
analog to environment variables on UNIX systems. While
getenv is a mechanism to retrieve either a logical name
or a symbol, it maintains an internal cache of values for
use with setenv and subsequent getenv calls. The setenv
function does not write or create DCL symbols or OpenVMS
logical names.
This is consistent with UNIX behavior. On UNIX systems,
setenv does not change or create any symbols that will be
visible in the shell after the program exits.
0 Indicates success.
-1 Indicates an error. errno is set to ENOMEM-
Not enough memory available to expand the
environment list.