293 lines
10 KiB
HTML
293 lines
10 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>Process a Path Name Exit Program</title>
|
||
|
<!-- 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. -->
|
||
|
<!-- Begin Header Records ========================================== -->
|
||
|
<!-- Unix2 SCRIPT J converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
|
||
|
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
|
||
|
<!-- Change History: -->
|
||
|
<!-- 010906 JTROUS == add cross reference back to Qp0lProcessSubtree -->
|
||
|
<!-- 0206?? JET This file has undergone html cleanup June 2002 by JET -->
|
||
|
<!-- 010906 JTROUS fix some typos, no change flagging, v5r4 -->
|
||
|
<!--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 type="text/javascript" language="Javascript" src="../rzahg/synch.js">
|
||
|
</script>
|
||
|
|
||
|
<h2>Process a Path Name Exit Program</h2>
|
||
|
|
||
|
<div class="box" style="width: 70%;">
|
||
|
<br>
|
||
|
Required Parameter Group:<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
<table width="100%">
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">1</td>
|
||
|
<td align="left" valign="top" width="50%">Selection status pointer</td>
|
||
|
<td align="left" valign="top" width="20%">Input</td>
|
||
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">2</td>
|
||
|
<td align="left" valign="top">Error value pointer</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">BINARY(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">3</td>
|
||
|
<td align="left" valign="top">Return value pointer</td>
|
||
|
<td align="left" valign="top">Output</td>
|
||
|
<td align="left" valign="top">BINARY(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">4</td>
|
||
|
<td align="left" valign="top">Object name pointer</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">CHAR(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">5</td>
|
||
|
<td align="left" valign="top">Function control block pointer</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">CHAR(*)</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
<br>
|
||
|
</div>
|
||
|
|
||
|
<p>The Process a Path Name exit program is a user-specified exit program that
|
||
|
is called by the <strong>Qp0lProcessSubtree()</strong> function for each object
|
||
|
in the API's search that meets the caller's selection criteria. This exit
|
||
|
program can be either a procedure or program.</p>
|
||
|
|
||
|
<p>When the user exit program is given control, it can call other APIs, build
|
||
|
lists or tables, or do other processing. Since the API passes the names of all
|
||
|
the children objects to the user exit program before passing the name of the
|
||
|
parent, the user exit program can also delete directories.</p>
|
||
|
|
||
|
<p>If the exit program encounters an error during processing, it returns a
|
||
|
valid <em>errno</em> in the Return value pointer field, that <strong>
|
||
|
Qp0lProcessSubtree()</strong> returns to its caller. When its processing is
|
||
|
complete, the exit program return code is set to tell <strong>
|
||
|
Qp0lProcessSubtree()</strong> to do one of the following:</p>
|
||
|
|
||
|
<ul>
|
||
|
<li>End processing.</li>
|
||
|
|
||
|
<li>Continue processing by calling the exit program again with the next object
|
||
|
from the same directory.</li>
|
||
|
|
||
|
<li>Continue processing by calling the exit program again, but not with objects
|
||
|
from the same directory. In this case, <strong>Qp0lProcessSubtree()</strong>
|
||
|
moves to the next directory or object that meets the specified criteria and
|
||
|
calls the exit program with it.</li>
|
||
|
</ul>
|
||
|
|
||
|
<p>If <strong>Qp0lProcessSubtree()</strong> encounters any problems in
|
||
|
resolving to a user exit program, <strong>Qp0lProcessSubtree()</strong> ends
|
||
|
and returns to its caller. If <strong>Qp0lProcessSubtree()</strong> encounters
|
||
|
any errors with any other parameters, it ends and returns control to its
|
||
|
caller, after a call to the user exit program. This call allows the exit
|
||
|
program to perform any desired cleanup before <strong>
|
||
|
Qp0lProcessSubtree()</strong> ends. Use the <em>Err_recovery_action</em>
|
||
|
parameter of <strong>Qp0lProcessSubtree()</strong> to set other conditions for
|
||
|
calling or not calling the user exit program.</p>
|
||
|
|
||
|
<p>Storage referred to by the Selection status pointer, Error value pointer,
|
||
|
Return value pointer, or the Object name pointer when the Process a Path Name
|
||
|
exit program is called, are destroyed or reused when <strong>
|
||
|
Qp0lProcessSubtree()</strong> regains control.</p>
|
||
|
|
||
|
<p>See <a href="qprstree.htm">Qp0lProcessSubtree()--Process a Path Name</a> for
|
||
|
more information.</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>Selection status pointer</em></strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>A pointer to an unsigned integer. This pointer indicates whether <strong>
|
||
|
Qp0lProcessSubtree()</strong> encountered any problems in processing. Valid
|
||
|
values follow:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="5 95" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top"><strong><em>QP0L_SELECT_OK:</em></strong>
|
||
|
Indicates to that no problems were encountered during the selection of the
|
||
|
current object. The Error value pointer parameter is set to NULL.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top"><strong><em>QP0L_SELECT_DONE:</em></strong>
|
||
|
Indicates that the last object was processed and that this is the last call to
|
||
|
the Process a Path Name exit program. The Object name pointer and the Error
|
||
|
value pointer parameters are set to NULL.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>2</em></td>
|
||
|
<td align="left" valign="top"><strong><em>QP0L_SELECT_NOT_OK:</em></strong>
|
||
|
Indicates that <strong>Qp0lProcessSubtree()</strong> has encountered an error
|
||
|
but that the Process a Path Name exit program can decide if the operation
|
||
|
should continue or end. The Error value pointer parameter points to a valid
|
||
|
<em>errno</em>.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>3</em></td>
|
||
|
<td align="left" valign="top"><strong><em>QP0L_SELECT_FAILED:</em></strong>
|
||
|
Indicates that <strong>Qp0lProcessSubtree()</strong> has encountered an
|
||
|
unrecoverable error and that <strong>Qp0lProcessSubtree()</strong> will return
|
||
|
to its caller when it regains control. The Error value pointer parameter points
|
||
|
to a valid <em>errno</em>.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong><em>Error value pointer</em></strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>A pointer to a valid <em>errno</em> that describes any problems encountered
|
||
|
by the API during the processing of the current object. Any valid <em>
|
||
|
errno</em> can be passed in this field when this parameter is not NULL.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong><em>Return value pointer</em></strong></dt>
|
||
|
|
||
|
<dd>OUTPUT; BINARY(4)
|
||
|
|
||
|
<p>A pointer to a value from the Process a Path Name exit program that
|
||
|
instructs the API to continue or to end processing. Valid values follow.</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top"><strong>Process a Path Name exit program</strong>
|
||
|
was successful.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>-1</em></td>
|
||
|
<td align="left" valign="top"><strong>Process a Path Name exit program</strong>
|
||
|
was successful. <strong>Qp0lProcessSubtree()</strong> should skip processing
|
||
|
any remaining objects in this directory and move on to process objects in other
|
||
|
directories.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>> 0 (an</em> errno)</td>
|
||
|
<td align="left" valign="top"><strong>Process a Path Name exit program</strong>
|
||
|
was not successful. <strong>Qp0lProcessSubtree()</strong> ends.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong><em>Object name pointer</em></strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(*)
|
||
|
|
||
|
<p>A pointer to the path name structure that contains the fully qualified name
|
||
|
of the object being processed by <strong>Qp0lProcessSubtree()</strong>.
|
||
|
For more information on this structure, see
|
||
|
<a href="../apiref/pns.htm">Path Name Format</a>.
|
||
|
The
|
||
|
Path_Type flag defined in the qlg.h header file must be used to determine
|
||
|
whether the Object name pointer contains a pointer or is a character string.
|
||
|
This flag must also be used to determine whether the path name delimiter
|
||
|
character is 1 or 2 characters long. Valid values follow:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="5 95" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top">The path name is a character string, and the path
|
||
|
name delimiter is 1 character long.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top">The path name is a pointer, and the path name
|
||
|
delimiter character is 1 character long.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>2</em></td>
|
||
|
<td align="left" valign="top">The path name is a character string, and the path
|
||
|
name delimiter is 2 characters long.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>3</em></td>
|
||
|
<td align="left" valign="top">The path name is a pointer, and the path name
|
||
|
delimiter character is 2 characters long.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong><em>Function control block pointer</em></strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(*)
|
||
|
|
||
|
<p>A pointer to the data that is passed to <strong>
|
||
|
Qp0lProcessSubtree()</strong> on its call. <strong>
|
||
|
Qp0lProcessSubtree()</strong> does not process the data that is referred to by
|
||
|
this pointer, but passes this pointer as a parameter when it calls the exit
|
||
|
program.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
<hr>
|
||
|
Exit program introduced: V4R3
|
||
|
|
||
|
<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>
|
||
|
|