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

899 lines
26 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 Stream File (QHFOPNSF) 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 Stream File (QHFOPNSF) API</h2>
<div class="box" style="width: 70%;">
<br>
&nbsp;&nbsp;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%">Open file 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(10)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Attribute information 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 information 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">Action taken</td>
<td align="left" valign="top">Output</td>
<td align="left" valign="top">Char(1)</td>
</tr>
<tr>
<td align="center" valign="top">8</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>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: No<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Open Stream File (QHFOPNSF) API opens and optionally creates a single stream file. Applications can use the QHFOPNSF API to perform these tasks:</p>
<ul>
<li>Open an existing file.<br><br></li>
<li>Open and replace an existing file. (You cannot perform this operation on read-only files)<br><br></li>
<li>Create a new file and open it.<br><br></li>
<li>Return an error if the specified file exists.<br><br></li>
<li>Return an error if the specified file does not exist.<br><br></li>
</ul>
<p>Do not use the QHFOPNSF API to change the directory entry attributes for an existing file. Instead, see <a href="qhfchgat.htm">Change Directory Entry Attributes (QHFCHGAT) API</a>.</p>
<p>When the file is opened, the file pointer is set to the first byte of the file (position 0). Subsequent read/write operations move or increase the value of the file pointer. To move it explicitly, see <a href="qhfchgfp.htm">Change File Pointer (QHFCHGFP) API</a>.</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>Required Parameter Group</h3>
<dl>
<dt><strong>Open file handle</strong></dt>
<dd>OUTPUT; CHAR(16)
<p>An identifier made up of arbitrary characters assigned by the API and used to refer to the file in subsequent operations.</p>
</dd>
<dt><strong>Path name</strong></dt>
<dd>INPUT; CHAR(*)
<p>The path name for the file. The last element of the path name is the file name.</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(10)
<p>Whether or not to open the file, and what the opened file's characteristics are. Each character of this parameter has a specific meaning. 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 action to take if the file already exists. Valid values are:<br><br>
<table cellpadding="3">
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Do not open the file. Return an error.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Open the file. When an existing file is opened and the file size is extended, the file system might not define the value of the new bytes.</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Replace the existing file. This is equivalent to deleting and re-creating the file. The directory entry information is replaced.</td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">The action to take if the file does not exist. Valid values are:<br><br>
<table cellpadding="3">
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Return an error.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Create the file.</td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top"><em>3</em></td>
<td valign="top">The write-through flag for the file. Valid values are:<br><br>
<table cellpadding="3">
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Write operations to nonvolatile storage can be asynchronous. (Nonvolatile storage is any storage area whose contents are not lost when power is cut off or when the system is loaded.) An asynchronous write operation returns control to the application immediately, so it can continue the operation. The write operation occurs at a later, unspecified time.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Write operations to nonvolatile storage must be synchronous. A <strong>synchronous</strong> write operation returns control to the operation only after the write operation completes.</td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top"><em>4</em></td>
<td valign="top">Reserved. This field must be blank.</td>
</tr>
<tr>
<td valign="top"><em>5</em></td>
<td valign="top">The file's lock mode. The <strong>lock mode</strong> defines what operations other jobs can perform on the file. Valid values are:<br><br>
<table cellpadding="3">
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Deny None</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Deny Write</td>
</tr>
<tr>
<td valign="top"><em>3</em></td>
<td valign="top">Deny Read</td>
</tr>
<tr>
<td valign="top"><em>4</em></td>
<td valign="top">Deny Read/Write (exclusive)</td>
</tr>
</table>
<p>For a detailed description of lock modes, see <a href="#HDRFSRULES">
Lock and Access Modes</a>.</p>
</td>
</tr>
<tr>
<td valign="top"><em>6</em></td>
<td valign="top">The file's <strong>access mode</strong>, indicating the application's access rights to the file. Valid values are:<br><br>
<table cellpadding="3">
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Read Only</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Write Only</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Read/Write</td>
</tr>
</table>
<p>For a detailed description of access modes, see <a href="#HDRFSRULES">
Lock and Access Modes</a>.</p>
</td>
</tr>
<tr>
<td valign="top"><em>7</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 file can be closed in only two ways: explicitly with the QHFCLOSF API, described in <a href="qhfclosf.htm">Close Stream File (QHFCLOSF) API</a>, or implicitly when the job ends. The End Request (ENDRQS) and Reclaim Resource (RCLRSC) commands do not close the file.</td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top"><em>8-10</em></td>
<td valign="top">Reserved. These characters must be blank.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Attribute information table</strong></dt>
<dd>INPUT; CHAR(*)
<p>The table specifying the attributes of the directory entry for this file. The file system determines which standard and extended attributes you can specify. For detailed descriptions of the standard attributes and the format of the table, see <a href="hfs1c.htm#HDRATTTAB">HFS Attribute Information Table</a>.</p>
<p>Use this parameter only when creating a new file or replacing an existing file. It is ignored when opening an existing file.</p>
</dd>
<dt><strong>Length of the attribute information table</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the attribute information table, in bytes, or a special value indicating which attributes to use. Valid values are:</p>
<table cellpadding="3">
<!-- cols="10 90" -->
<tr>
<td valign="top"><em>length</em></td>
<td valign="top">Use the attributes contained in the attribute information table.</td>
</tr>
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Use the system defaults for standard attributes.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Action taken</strong></dt>
<dd>OUTPUT; CHAR(1)
<p>One of these values, indicating the action taken by the file system:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">The file already existed and was not replaced.</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">The file did not exist and was created.</td>
</tr>
<tr>
<td valign="top"><em>3</em></td>
<td valign="top">The file already existed and was replaced.</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><a name="HDRFSRULES">Lock and Access Modes</a></h3>
<p>Lock and access modes determine which operations jobs can perform on files. The following sections describe lock and access modes in detail.</p>
<br>
<h3>Lock Modes</h3>
<p>The lock mode determines the type of access your job lets other jobs have to the file. For example, if other jobs can continue reading a file but cannot write to it without impeding your job, specify deny write. This lock mode lets other jobs read the file but keeps them from writing to it.</p>
<p>When you assign a lock mode, it applies only to that specific occurrence of the file being opened. The lock mode you specified when opening a stream file restricts open operations by other jobs only; it does not restrict additional open operations by the job that locked the file.</p>
<p>A file can be opened multiple times by different jobs as long as the lock modes specified on the open operations are compatible.</p>
<p>Any locks placed on a file opened with the QHFOPNSF API are removed when the file is closed with the Close Stream File (QHFCLOSF) API or when the job ends.</p>
<p>The lock modes you can specify when opening a file are:</p>
<table cellpadding="3">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>Deny Read/Write</em></td>
<td valign="top">Access to the file is exclusive for the current job. The current job can perform additional open operations on the file. However, no other job can open the file in any lock mode until the current job either closes it or ends.</td>
</tr>
<tr>
<td valign="top"><em>Deny Write</em></td>
<td valign="top">Other jobs can read but cannot write to the file. In other words, no other job can open the file with write access; the file must be closed first, or the current job must end.</td>
</tr>
<tr>
<td valign="top"><em>Deny Read</em></td>
<td valign="top">No other job can read the file until the current job either closes it or ends.</td>
</tr>
<tr>
<td valign="top"><em>Deny None</em></td>
<td valign="top">Other jobs can read and write to the file. However, they cannot delete, rename, move, or change the attributes of the file until the current job either closes it or ends.</td>
</tr>
</table>
<br><br>
<h3>Access Modes</h3>
<p>The access mode characteristic determines the type of access your job needs to the file. For example, if your job requires read/write access and another job has already opened the file with a lock mode of deny none, your open request succeeds. However, if another job opened the file with a lock mode of deny write, your job is denied access.</p>
<p>The following table shows the results of opening and then trying to reopen the same file using all combinations of access and lock modes:</p>
<table border width="80%">
<tr>
<th align="left" valign="bottom" colspan="2">1st Open Operation (by your job)</th>
<th align="left" valign="bottom" colspan="12">2nd, 3rd, 4th Open Operation (by other jobs)</th>
</tr>
<tr>
<th align="left" valign="bottom" rowspan="2">Lock Mode</th>
<th align="left" valign="bottom" rowspan="2">Access Mode</th>
<th align="left" valign="bottom" colspan="3">Deny Read/Write</th>
<th align="left" valign="bottom" colspan="3">Deny Write</th>
<th align="left" valign="bottom" colspan="3">Deny Read</th>
<th align="left" valign="bottom" colspan="3">Deny None</th>
</tr>
<tr>
<th align="left" valign="bottom">R/O</th>
<th align="left" valign="bottom">R/W</th>
<th align="left" valign="bottom">W/O</th>
<th align="left" valign="bottom">R/O</th>
<th align="left" valign="bottom">R/W</th>
<th align="left" valign="bottom">W/O</th>
<th align="left" valign="bottom">R/O</th>
<th align="left" valign="bottom">R/W</th>
<th align="left" valign="bottom">W/O</th>
<th align="left" valign="bottom">R/O</th>
<th align="left" valign="bottom">R/W</th>
<th align="left" valign="bottom">W/O</th>
</tr>
<tr>
<td align="left" valign="top" rowspan="3">Deny Read/ Write</td>
<td align="left" valign="top">R/O</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
</tr>
<tr>
<td align="left" valign="top">R/W</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
</tr>
<tr>
<td align="left" valign="top">W/O</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="3">Deny Write</td>
<td align="left" valign="top">R/O</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
</tr>
<tr>
<td align="left" valign="top">R/W</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
</tr>
<tr>
<td align="left" valign="top">W/O</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="3">Deny Read</td>
<td align="left" valign="top">R/O</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
</tr>
<tr>
<td align="left" valign="top">R/W</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
</tr>
<tr>
<td align="left" valign="top">W/O</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="3">Deny None</td>
<td align="left" valign="top">R/O</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
</tr>
<tr>
<td align="left" valign="top">R/W</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
</tr>
<tr>
<td align="left" valign="top">W/O</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">N</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
<td align="left" valign="top">Y</td>
</tr>
<tr>
<td align="left" valign="top" colspan="14"><strong>Key:</strong><br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>Y</em></td>
<td align="left" valign="top">Open is allowed</td>
</tr>
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">Open is denied</td>
</tr>
<tr>
<td align="left" valign="top"><em>R/W</em></td>
<td align="left" valign="top">Read/write</td>
</tr>
<tr>
<td align="left" valign="top"><em>R/O</em></td>
<td align="left" valign="top">Read only</td>
</tr>
<tr>
<td align="left" valign="top"><em>W/O</em></td>
<td align="left" valign="top">Write only</td>
</tr>
</table>
<br>
</td>
</tr>
</table>
<br>
<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">CPF1F2A E</td>
<td valign="top">Number of open files exceeds limit.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F21 E</td>
<td valign="top">File name not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F22 E</td>
<td valign="top">File not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F24 E</td>
<td valign="top">File name already exists.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F26 E</td>
<td valign="top">File in use.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F27 E</td>
<td valign="top">Authority not sufficient to access file.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F28 E</td>
<td valign="top">Damaged file.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F29 E</td>
<td valign="top">Use of reserved file name not allowed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F37 E</td>
<td valign="top">File is a read-only file.</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">CPF1F42 E</td>
<td valign="top">Attribute information table not valid.</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">CPF1F44 E</td>
<td valign="top">Attribute value is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F46 E</td>
<td valign="top">Use of reserved attribute name not allowed.</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">CPF1F61 E</td>
<td valign="top">No free space available on media.</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">CPF1F63 E</td>
<td valign="top">Media is write protected.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F66 E</td>
<td valign="top">Storage needed exceeds maximum limit for user profile &amp;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 &amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F85 E</td>
<td valign="top">Not authorized to file system &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F87 E</td>
<td valign="top">Missing or damaged exit program &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1F97 E</td>
<td valign="top">File system &amp;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 &amp;1 in library &amp;2 ended. Reason code &amp;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>