422 lines
12 KiB
HTML
422 lines
12 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>Open Directory (QHFOPNDR) API</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. -->
|
||
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
||
|
<!-- Change History: -->
|
||
|
<!-- YYMMDD USERID Change description -->
|
||
|
<!--File Edited November 2001 -->
|
||
|
<!-- 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>Open Directory (QHFOPNDR) API</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%">Directory handle</td>
|
||
|
<td align="left" valign="top" width="20%">Output</td>
|
||
|
<td align="left" valign="top" width="20%">Char(16)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">2</td>
|
||
|
<td align="left" valign="top">Path name</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">3</td>
|
||
|
<td align="left" valign="top">Path name length</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">4</td>
|
||
|
<td align="left" valign="top">Open information</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(6)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">5</td>
|
||
|
<td align="left" valign="top">Attribute selection table</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">6</td>
|
||
|
<td align="left" valign="top">Length of attribute selection table</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">7</td>
|
||
|
<td align="left" valign="top">Error code</td>
|
||
|
<td align="left" valign="top">I/O</td>
|
||
|
<td align="left" valign="top">Char(*)</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
Default Public Authority: *USE<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
Threadsafe: No<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
</div>
|
||
|
|
||
|
<p>The Open Directory (QHFOPNDR) API opens the specified directory so its directory entries can be read. At open time, the directory pointer points to the first entry in the directory. As directory entries are read using the Read Directory Entries (QHFRDDR) API, the directory pointer advances so that the next entries will be read during future read operations.</p>
|
||
|
|
||
|
<p>Opening a directory can help streamline information retrieval and protect the directory. For example, you might open a directory to:</p>
|
||
|
|
||
|
<ul>
|
||
|
<li>Improve performance when obtaining information from more than one directory entry.<br><br></li>
|
||
|
|
||
|
<li>Prevent the directory from being renamed or deleted. A deny none lock mode lets other processes read or change the contents of the directory, but keeps them from renaming or deleting the directory itself.<br><br></li>
|
||
|
|
||
|
<li>Prevent the contents of the directory from being changed. A deny write lock mode keeps other processes from adding to or otherwise changing the open directory's contents. Directories and files cannot be created in the directory until it is closed.</li>
|
||
|
</ul>
|
||
|
|
||
|
<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>Required Parameter Group</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>Directory handle</strong></dt>
|
||
|
|
||
|
<dd>OUTPUT; CHAR(16)
|
||
|
|
||
|
<p>An identifier made up of arbitrary characters returned by the API and used to identify the directory for subsequent operations, such as reading and closing.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Path name</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(*)
|
||
|
|
||
|
<p>The path name for the directory being opened. The path and directory must exist.</p>
|
||
|
|
||
|
<p>For the directory name (the last element of the path name), you can use either a specific name or a generic name.</p>
|
||
|
|
||
|
<p>If the last element in the path is a specific name, that directory is opened and all directory entries in the directory are available for subsequent read operations.</p>
|
||
|
|
||
|
<p>If the last element in the path is a generic name, it identifies the directory entries to make available for subsequent read operations; the previous name in the path specifies the directory to open. Directory entries that are in the directory to open and that match the generic name are made available.</p>
|
||
|
|
||
|
<p>You can use these special matching characters in generic names:</p>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<!-- cols="5 95" -->
|
||
|
<tr>
|
||
|
<td valign="top"><em>*</em></td>
|
||
|
<td valign="top">An asterisk stands for zero or more characters. You can use it anywhere in a string.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top"><em>?</em></td>
|
||
|
<td valign="top">A question mark at the end of a string represents zero or one character. A question mark embedded in a string represents one character.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>For example, /QDLS/BUSY/DEPT* indicates all directories and files that
|
||
|
have names beginning with DEPT and that are located in directory BUSY in
|
||
|
the QDLS file system.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Path name length</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>The length of the path name, in bytes.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Open information</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(6)
|
||
|
|
||
|
<p>Information about the type and mode of the open operation. The characters and their meanings are:</p>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<!-- cols="5 95" -->
|
||
|
<tr>
|
||
|
<td valign="top"><em>1</em></td>
|
||
|
<td valign="top">The lock mode, indicating what other jobs can do to the directory. Valid values are:<br><br>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<tr>
|
||
|
<td valign="top"><em>0</em></td>
|
||
|
<td valign="top">No lock. Other jobs can read, change, rename, or delete the directory.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top"><em>1</em></td>
|
||
|
<td valign="top">Deny none. Other jobs can read or change directory entries, but they cannot rename or delete the directory.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top"><em>2</em></td>
|
||
|
<td valign="top">Deny write. Other jobs can read the contents of the directory, but they cannot change, rename, or delete it.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<br>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top"><em>2</em></td>
|
||
|
<td valign="top">The type of open operation to perform. Valid values are:<br><br>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<tr>
|
||
|
<td valign="top"><em>0</em></td>
|
||
|
<td valign="top">Normal.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top"><em>1</em></td>
|
||
|
<td valign="top">Permanent. The directory can be closed in only two ways, explicitly by the Close Directory (QHFCLODR) API, or implicitly, when the job ends. End request and reclaim resource operations do not close the directory.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top"><em>3-6</em></td>
|
||
|
<td valign="top">Reserved. These characters must be blank.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Attribute selection table</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(*)
|
||
|
|
||
|
<p>The table specifying which attributes are available when reading directory entries. The file system determines which standard and extended attributes you can specify. For detailed descriptions of the standard attributes, see<a href="hfs1c.htm"> HFS Directory Entry Attributes</a>. For the format of the table, see <a href="hfs1c.htm#HDRATTSEL">HFS Attribute Selection Table</a>.</p>
|
||
|
|
||
|
<p>This parameter lets you choose which <em>attributes</em> of the directory entries are available for reading when the directory is open. It does not determine which <em>directory entries</em> can be read. Use the path name parameter to select the directory entries you want to read.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Length of the attribute selection table</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>The length of the table, in bytes, or a special value indicating which attributes are made available. Valid values are:</p>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<!-- cols="10 90" -->
|
||
|
<tr>
|
||
|
<td valign="top"><em>length</em></td>
|
||
|
<td valign="top">The attribute selection table parameter contains the attributes the application wants to make available.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top"><em>0</em></td>
|
||
|
<td valign="top">Only the standard attribute QNAME is available.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top"><em>-1</em></td>
|
||
|
<td valign="top">All attributes are available.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Error code</strong></dt>
|
||
|
|
||
|
<dd>I/O; CHAR(*)
|
||
|
|
||
|
<p>The structure in which to return error information. For the format of the structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
<h3>Error Messages</h3>
|
||
|
|
||
|
<table width="100%" cellpadding="3">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<th align="left" valign="top">Message ID</th>
|
||
|
<th align="left" valign="top">Error Message Text</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F01 E</td>
|
||
|
<td valign="top">Directory name not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F02 E</td>
|
||
|
<td valign="top">Directory not found.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F06 E</td>
|
||
|
<td valign="top">Directory in use.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F07 E</td>
|
||
|
<td valign="top">Authority not sufficient to access directory.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F08 E</td>
|
||
|
<td valign="top">Damaged directory.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F41 E</td>
|
||
|
<td valign="top">Severe error occurred while addressing parameter list.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F43 E</td>
|
||
|
<td valign="top">Attribute name not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F45 E</td>
|
||
|
<td valign="top">Attribute selection table not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F48 E</td>
|
||
|
<td valign="top">Path name not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F49 E</td>
|
||
|
<td valign="top">Open information value not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F52 E</td>
|
||
|
<td valign="top">Error code not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F62 E</td>
|
||
|
<td valign="top">Requested function failed.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F66 E</td>
|
||
|
<td valign="top">Storage needed exceeds maximum limit for user profile &1.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F71 E</td>
|
||
|
<td valign="top">Exception specific to file system occurred.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F72 E</td>
|
||
|
<td valign="top">Internal file system error occurred.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F73 E</td>
|
||
|
<td valign="top">Not authorized to use command.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F74 E</td>
|
||
|
<td valign="top">Not authorized to object.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F75 E</td>
|
||
|
<td valign="top">Error occurred during start-job-session function.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F81 E</td>
|
||
|
<td valign="top">API specific error occurred.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F82 E</td>
|
||
|
<td valign="top">Function not supported.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F83 E</td>
|
||
|
<td valign="top">File system name &1 not found.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F85 E</td>
|
||
|
<td valign="top">Not authorized to file system &1.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F87 E</td>
|
||
|
<td valign="top">Missing or damaged exit program &2.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F97 E</td>
|
||
|
<td valign="top">File system &1 in use.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C90 E</td>
|
||
|
<td valign="top">Literal value cannot be changed.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF9872 E</td>
|
||
|
<td valign="top">Program or service program &1 in library &2 ended. Reason code &3.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
<hr>
|
||
|
API introduced: V2R1
|
||
|
|
||
|
<hr>
|
||
|
<center>
|
||
|
<table cellpadding="2" cellspacing="2">
|
||
|
<tr align="center">
|
||
|
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a
|
||
|
href="hfs1.htm">Hierarchical File System APIs</a> |
|
||
|
<a href="aplist.htm">APIs by category</a></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</center>
|
||
|
</body>
|
||
|
</html>
|
||
|
|