ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/evpenvxt.htm

252 lines
7.6 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Qp0zPutEnv()--Change or Add Environment Variable (Extended)</title>
<!-- Begin Header Records ========================================== -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- Direct1 SCRIPT J converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- This file has undergone html cleanup on 04/29/02 by JET -->
<!-- End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<a name="Top_Of_Page"></a>
<h2>Qp0zPutEnv()--Change or Add Environment Variable (Extended)</h2>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Syntax
<pre>
#include &lt;qp0z1170.h&gt;
int Qp0zPutEnv(const char <em>*string</em>, int <em>ccsid</em>);;
</pre>
&nbsp;&nbsp;Service Program Name: QP0ZCPA<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes. See Usage Notes for more information.<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The <strong>Qp0zPutEnv()</strong> function is an i5/OS extension to the
standard <strong>putenv()</strong> function. <strong>Qp0zPutEnv()</strong> sets
the value of an environment variable by altering an existing variable or
creating a new variable. In addition, it specifies a CCSID (coded character set
identifier) to be associated with the environment variable.</p>
<p>The <em>string</em> parameter points to a string of the form <samp>
name=value</samp>, where <samp>name</samp> is the environment variable and
<samp>value</samp> is the new value for it.</p>
<p>The <samp>name</samp> cannot contain a blank. For example,</p>
<pre>
PATH NAME=/my_lib/joe_user
</pre>
<p>is not valid because of the blank between <samp>PATH</samp> and <samp>
NAME</samp>. 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,</p>
<pre>
PATH=NAME=/my_lib/joe_user
</pre>
<p>will result in a value of 'NAME=/my_lib/joe_user' for the variable PATH.</p>
<br>
<!-- Please NOTE: DO NOT DELETE THIS SECTION if this API has no authorities and locks. -->
<!-- Instead, use the commented out coding below to indicate NONE. -->
<h3>Authorities and Locks</h3>
<!-- Use this if there are no authorities and locks. -->
<p>None.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><strong><em>string</em></strong></dt>
<dd>(Input) A pointer to the <samp>name=value</samp> string.<br>
</dd>
<dt><strong><em>ccsid</em></strong></dt>
<dd>(Input) A CCSID to be associated with this environment variable. If 0 is
specified, the default CCSID for the job is used.</dd>
</dl>
<br>
<h3>Return Value</h3>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top"><strong>Qp0zInitEnv()</strong> successfully
initialized the environment.</td>
</tr>
<tr>
<td align="left" valign="top"><em>-1</em></td>
<td align="left" valign="top"><strong>Qp0zInitEnv()</strong> was not
successful. The <em>errno</em> variable is set to indicate the error.</td>
</tr>
</table>
<br>
<br>
<h3>Error Conditions</h3>
<p>If <strong>Qp0zPutEnv()</strong> is not successful, <em>errno</em> indicates
one of the following errors.</p>
<dl compact>
<dt><em>[EDAMAGE]</em></dt>
<dd>
<p>A damaged object was encountered.</p>
<p>A referenced object is damaged. The object cannot be used.</p>
</dd>
<dt><em>[EFAULT]</em></dt>
<dd>
<p>The address used for an argument is not correct.</p>
<p>In attempting to use an argument in a call, the system detected an address
that is not valid.</p>
<p>While attempting to access a parameter passed to this function, the system
detected an address that is not valid.</p>
</dd>
<dt><em>[EINVAL]</em></dt>
<dd>
<p>The value specified for the argument is not correct.</p>
<p>A function was passed incorrect argument values, or an operation was
attempted on an object and the operation specified is not supported for that
type of object.</p>
<p>An argument value is not valid, out of range, or NULL. For example, the
string may not be in the correct format.</p>
</dd>
<dt><em>[ENOMEM]</em></dt>
<dd>
<p>Storage allocation request failed.</p>
<p>A function needed to allocate storage, but no storage is available.</p>
<p>There is not enough memory to perform the requested function. (There is a
limit of 4095 environment variables per job.)</p>
</dd>
<dt><em>[EUNKNOWN]</em></dt>
<dd>
<p>Unknown system state.</p>
<p>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.</p>
</dd>
</dl>
<br>
<h3>Usage Notes</h3>
<ol>
<li>Although <strong>Qp0zPutEnv()</strong> 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
<strong>getenv()</strong> or <strong>Qp0zGetEnv()</strong> functions. The
environment contents are only protected during calls to the environment
variable functions.<br>
</li>
<li>No translation is done based on the CCSID. The CCSID is just stored and
retrieved as an integer value associated with each environment variable.</li>
</ol>
<br>
<h3>Related Information</h3>
<ul>
<li>The &lt;<strong>qp0z1170.h</strong>&gt; file (see <a href="unix13.htm">
Header Files for UNIX-Type Functions</a>)</li>
<li><a href="evgetenv.htm">getenv()</a>--Get Value of Environment Variable</li>
<li><a href="evputenv.htm">putenv()</a>--Change or Add Environment
Variable</li>
<li><a href="evdltenv.htm">Qp0zDltEnv()</a>--Delete an Environment
Variable</li>
<li><a href="evdltsev.htm">Qp0zDltSysEnv()</a>--Delete a System-Level
Environment Variable</li>
<li><a href="evgetall.htm">Qp0zGetAllSysEnv()</a>--Get All System-Level
Environment Variables</li>
<li><a href="evgetsev.htm">Qp0zGetSysEnv()</a>--Get Value of System-Level
Environment Variable</li>
<li><a href="evinenv.htm">Qp0zInitEnv()</a>--Initialize Environment for
Variables</li>
<li><a href="evputsev.htm">Qp0zPutSysEnv()</a>--Change or Add a System-Level
Environment Variable</li>
</ul>
<br>
<h3>Example</h3>
<p>See <a href="../apiref/aboutapis.htm#codedisclaimer">Code disclaimer information</a>
for information pertaining to code examples.</p>
<p>See the example of using <strong>putenv()</strong> in <a href=
"evpenvxt.htm">putenv()</a>--Change or Add Environment Variable.</p>
<br>
<hr>
API introduced: V3R6
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"unix.htm">UNIX-Type APIs</a> | <a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>