getenv()--Get Value of Environment Variable
Syntax
#include <stdlib.h> char *getenv(const char *name);Service Program Name: QP0ZCPA
Default Public Authority: *USE
Threadsafe: Yes. See Usage Notes for more information.
The getenv() function searches the job-level environment list for a string of the form name=value, where name is the environment variable and value is the value of the variable.
The name parameter does not include the equal (=) symbol or the value of the environment variable name=value pair.
Authorities and Locks
None.
Parameters
- name
- (Input) The name of an environment variable.
Return Value
value | getenv() successfully found the environment string. The value returned is a pointer to the string containing the value for the specified name in the current environment. |
NULL | getenv() could not find the environment string. The errno variable is set to indicate the error. |
Error Conditions
If getenv() is not successful, errno indicates one of the following errors.
- [EDAMAGE]
-
A damaged object was encountered.
A referenced object is damaged. The object cannot be used.
- [[EFAULT]]
-
The address used for an argument is not correct.
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.
- [ENOENT]
-
No such path or directory.
The directory or a component of the path name specified does not exist.
A named file or directory does not exist or is an empty string.
No entry found for name specified.
- [EUNKNOWN]
-
Unknown system state.
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
- Although getenv() is threadsafe, if a thread calls an
environment variable function while another thread is accessing an environment
variable from the environ array the thread may see undefined results. The
environ array can be accessed directly or by using a pointer returned from the
getenv() or Qp0zGetEnv() functions. The
environment contents are only protected during calls to the environment
variable functions.
- All environment variables are stored with an associated CCSID (coded
character set identifier). Unless a different CCSID is specified, such as by
using Qp0zPutEnv(), the default CCSID for the job is used as
the CCSID associated with each environment variable string.
- No translation is done based on the CCSID. The CCSID is just stored and retrieved as an integer value associated with each environment variable.
Related Information
- putenv()--Change or Add Environment Variable
- Qp0zDltEnv()--Delete an Environment Variable
- Qp0zDltSysEnv()--Delete a System-Level Environment Variable
- Qp0zGetAllSysEnv()--Get All System-Level Environment Variables
- Qp0zGetEnv()--Get Value of Environment Variable (Extended)
- Qp0zGetSysEnv()--Get Value of System-Level Environment Variable
- Qp0zInitEnv()--Initialize Environment for Variables
- Qp0zPutEnv()--Change or Add Environment Variable (Extended)
- Qp0zPutSysEnv()--Change or Add a System-Level Environment
Example
See the example of using getenv() in putenv()--Change or Add Environment Variable.
For other examples, see the following:
- Example: Using environment variables
- Example: Using process-related APIs
- Example in QlgSpawn()--Spawn Process (using NLS-enabled path name)
API introduced: V3R6