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

248 lines
6.8 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>qsysetregid()--Set Real and Effective Group IDs</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 -->
<!-- file cleaned -->
<!-- QSYSTREG SCR450 A converted by B2H R4.1 (346) (CMS) by V2DCIJB -->
<!-- at RCHVMW2 on 5 Oct 1999 at 15:36:17 -->
<!-- This file has undergone html cleanup June 2002 by JET -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>qsysetregid()--Set Real and Effective Group IDs</h2>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Syntax<br>
<pre>
#include &lt;qsysetids.h&gt;
int qsysetregid(gid_t rgid, gid_t egid);
</pre>
&nbsp;&nbsp;Service Program Name: QSYSETIDS<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The <strong>qsysetregid()</strong> function is used to set the real and
effective group IDs. The real and effective group IDs may be set to different
values in the same call.</p>
<p>A thread with *ALLOBJ special authority can set the real group ID and the
effective group ID to any valid value.</p>
<p>A thread without *ALLOBJ special authority can only set the real group ID to
the saved group ID. A thread without *ALLOBJ special authority can only set the
effective group ID to the saved group ID or the real group ID.</p>
<p>Any supplemental group IDs remain unchanged.</p>
<p>Job scoped locks with a lock state of *SHRRD are held on the user profiles
associated with the real user ID, effective user ID, saved user ID, real group
ID, effective group ID, saved group ID, and all of the supplemental groups.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><strong><em>real gid</em></strong></dt>
<dd>(Input) Group ID.
<p>This field must contain one of the following values:</p>
<dl>
<dt><strong>0</strong></dt>
<dd>There is no real group ID.<br>
</dd>
<dt><strong>1 to 4294967294</strong></dt>
<dd>The group ID value for the set operation.<br>
</dd>
<dt><strong>4294967295</strong></dt>
<dd>The real group ID does not change. This value is the same as X'FFFFFFFF' or
-1 in languages that do not support unsigned integers.</dd>
</dl>
<br>
</dd>
<dt><strong><em>effective gid</em></strong></dt>
<dd>(Input) Group ID.
<p>This field must contain one of the following values:</p>
<dl>
<dt><strong>0</strong></dt>
<dd>There is no effective group ID.<br>
</dd>
<dt><strong>1 to 4294967294</strong></dt>
<dd>The group ID value for the set operation.<br>
</dd>
<dt><strong>4294967295</strong></dt>
<dd>The effective group ID does not change. This value is the same as
X'FFFFFFFF' or -1 in languages that do not support unsigned integers.</dd>
</dl>
</dd>
</dl>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><strong>*ALLOBJ special authority</strong></dt>
<dd>*ALLOBJ special authority is required to change the real group ID if <em>
rgid</em> is not equal to the saved group ID. *ALLOBJ special authority is
required to set the effective group ID if the <em>egid</em> is not equal to the
real group ID or the saved group ID.<br>
</dd>
<dt><strong>User profile associated with <em>rgid</em> lock</strong></dt>
<dd>*SHRRD<br>
</dd>
<dt><strong>User profile associated with <em>egid</em> lock</strong></dt>
<dd>*SHRRD</dd>
</dl>
<br>
<h3>Return Value</h3>
<dl>
<dt><strong>0</strong></dt>
<dd><strong>qsysetregid()</strong> was successful.<br>
</dd>
<dt><strong>-1</strong></dt>
<dd><strong>qsysetregid()</strong> was not successful. The <em>errno</em> is
set to indicate the error.</dd>
</dl>
<br>
<h3>Error Conditions</h3>
<p>If <strong>qsysetregid()</strong> is not successful, <em>errno</em>
indicates one of the following errors.</p>
<table cellpadding="5">
<!-- cols="25 75" -->
<tr>
<th align="left" valign="bottom">Error condition</th>
<th align="left" valign="bottom">Additional information</th>
</tr>
<tr>
<td align="left" valign="top">
<em>[<a href="unix14.htm#EAGAIN">EAGAIN</a>]</em></td>
<td align="left" valign="top">
<p>User profile associated with the rgid or rgid is locked. Try again.</p>
</td></tr>
<tr><td align="left" valign="top"><em>[<a href="unix14.htm#EDAMAGE">EDAMAGE</a>]</em></td>
<td align="left" valign="top">
<p>The user profile associated with one of the GIDs or an internal system
object is damaged.</p>
</td></tr>
<tr>
<td align="left" valign="top">
<em>[<a href="unix14.htm#EINVAL">EINVAL</a>]</em></td>
<td align="left" valign="top">
<p>The value of the <em>gid</em> argument is not valid. Following are possible
reasons:</p>
<ul compact>
<li>Out of range.</li>
<li>Not associated with a user profile.</li>
</ul>
</td>
</tr>
<tr><td align="left" valign="top"><em>[<a href="unix14.htm#ENOTSUP">ENOTSUP</a>]</em></td>
<td align="left" valign="top">
<p>Operation not supported. The current effective user profile specifies
OWNER(*GRPPRF), but the group profile associated with this <em>gid</em> is not
equal to the user profile's first group and the user's first group is not in
the list of supplemental groups.</p>
</td></tr>
<tr><td align="left" valign="top"><em>[<a href="unix14.htm#EPERM">EPERM</a>]</em></td>
<td align="left" valign="top">
<p>Operation not permitted. Following are possible reasons:</p>
<ul compact>
<li>The thread does not have *ALLOBJ special authority and a change other than
changing the real group ID to the saved group ID, or changing the effective
group ID to the real group ID or the saved group ID was requested.</li>
<li>Tried to set effective group ID to 0 when there are supplemental
groups.</li>
</ul>
</td></tr>
<tr><td align="left" valign="top"><em>[<a href="unix14.htm#EUNKNOWN">EUNKNOWN</a>]</em></td>
<td align="left" valign="top">
<p>An unknown error has occurred. Check the joblog for error messages.</p>
</td></tr>
</table>
<br>
<hr>
API introduced: V4R5
<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>