#include <stdlib.h> int putenv(const char *string);
|
The putenv() function sets the value of a job-level environment variable by changing an existing variable or creating a new one. The string parameter points to a string of the form name=value, where name is the environment variable and value is the new value for it.
The name cannot contain a blank. For example,
PATH NAME=/my_lib/joe_user
is not valid because of the blank between PATH and NAME. The name can contain an equal (=) symbol, but the system interprets all characters following the first equal symbol as being the value of the environment variable. For example,
PATH=NAME=/my_lib/joe_user
will result in a value of 'NAME=/my_lib/joe_user' for the variable PATH.
Parameters
Return Value
Error Conditions
If putenv() is not successful, errno indicates one of the following errors.
A referenced object is damaged. The object cannot be used.
In attempting to use an argument in a call, the system detected an address that is not valid.
While attempting to access a parameter passed to this function, the system detected an address that is not valid.
A parameter passed to this function is not valid.
For example, the string may not be in the correct format.
A function needed to allocate storage, but no storage is available.
There is not enough memory to perform the requested function. (There is a limit of 4095 environment variables per job.)
The operation failed because of an unknown system state. See any messages in the job log and correct any errors that are indicated, then retry the operation.
Usage Notes
Related Information
Example
The following example uses putenv() and getenv().
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
char *var1 = "PATH=/:/home/userid";
char *name1 = "PATH";
char *val1 = NULL;
int rc;
rc = putenv(var1);
if (rc < 0) {
printf("Error inserting <%s> in environ, errno = %d\n",
var1, errno);
return 1;
}
printf("<%s> inserted in environ\n", var1);
val1 = getenv(name1);
if (val1 == NULL) {
printf("Error retrieving <%s> from environ, errno = %d\n",
name1, errno);
return 1;
}
printf("<%s> retrieved from environ, value is <%s>\n",
name1, val1);
return 0;
}
Output:
<PATH=/:/home/userid> inserted in environ <PATH> retrieved from environ, value is </:/home/userid>
For other examples, see the following:
| Top | Environment Variable APIs | APIs by category |
| [Information Center Home Page | Feedback ] | [Legal | AS/400 Glossary] |