239 lines
7.4 KiB
HTML
239 lines
7.4 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>Exit Program for Read from Stream File (QHFRDSF) API</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. -->
|
||
|
<!--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>Exit Program for Read from Stream File (QHFRDSF) 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%">Operation (RDSF)</td>
|
||
|
<td align="left" valign="top" width="20%">Input</td>
|
||
|
<td align="left" valign="top" width="20%">Char(5)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">2</td>
|
||
|
<td align="left" valign="top">File system job handle</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(16)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">3</td>
|
||
|
<td align="left" valign="top">Open file handle</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(16)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">4</td>
|
||
|
<td align="left" valign="top">Data buffer</td>
|
||
|
<td align="left" valign="top">Output</td>
|
||
|
<td align="left" valign="top">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">5</td>
|
||
|
<td align="left" valign="top">Bytes to read</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">6</td>
|
||
|
<td align="left" valign="top">Bytes actually read</td>
|
||
|
<td align="left" valign="top">Output</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<br>
|
||
|
</div>
|
||
|
|
||
|
<p>Before applications can use the Read from Stream File (QHFRDSF) API with your file system, you must:</p>
|
||
|
|
||
|
<ol>
|
||
|
<li>Write an exit program that performs the read operation on behalf of the API. For a detailed description of the API and its calling parameters, see <a href="qhfrdsf.htm#HDRURDSF">Read from Stream File (QHFRDSF) API</a>.<br><br></li>
|
||
|
|
||
|
<li>Give the exit program's name when you register the file system with the Register File System (QHFRGFS) API.</li>
|
||
|
</ol>
|
||
|
|
||
|
<p>After that, when an application calls the QHFRDSF API, the API calls your exit program and passes it the parameters specified by the application. Your exit program performs the work and returns any data to the API. The API passes the data back to the calling application.</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>
|
||
|
|
||
|
<p>The following shows the input parameters that the API passes to your exit program and the output parameters that the exit program must pass back to the API:</p>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>Operation (RDSF)</strong></dt>
|
||
|
<dd>INPUT; CHAR(5)
|
||
|
|
||
|
<p>The abbreviation for the operation being performed (RDSF).</p></dd>
|
||
|
|
||
|
<dt><strong>File system job handle</strong></dt>
|
||
|
<dd>INPUT; CHAR(16)
|
||
|
|
||
|
<p>The work area or job identifier for use by the file system.</p></dd>
|
||
|
</dl>
|
||
|
|
||
|
<p>The following parameters are the same as the parameters for the API.</p>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>Open file handle</strong></dt>
|
||
|
<dd>INPUT; CHAR(16)<br><br></dd>
|
||
|
|
||
|
<dt><strong>Data buffer</strong></dt>
|
||
|
<dd>OUTPUT; CHAR(*)<br><br></dd>
|
||
|
|
||
|
<dt><strong>Bytes to read</strong></dt>
|
||
|
<dd>INPUT; BINARY(4)<br><br></dd>
|
||
|
|
||
|
<dt><strong>Bytes actually read</strong></dt>
|
||
|
<dd>OUTPUT; BINARY(4)</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
<h3>API Functions</h3>
|
||
|
|
||
|
<p>The QHFRDSF API performs the standard functions described in <a href="hfs3d.htm#HDRSTDAPI">Standard
|
||
|
HFS API Functions</a>.</p>
|
||
|
|
||
|
<br>
|
||
|
<h3>Exit Program Requirements</h3>
|
||
|
|
||
|
<p>You must create an exit program that performs the standard functions described in <a href="hfs3d.htm#HDRSTDFS">Standard HFS Exit Program Requirements</a> and these additional functions:</p>
|
||
|
|
||
|
<ul>
|
||
|
<li>Verifies that the file was previously opened with an access mode of read only or read/write.<br><br></li>
|
||
|
|
||
|
<li>Checks the range of bytes being read to make sure no part of the range is locked in deny read/write mode, which would preclude this operation.<br><br></li>
|
||
|
|
||
|
<li>Reads the number of bytes specified from the file, starting at the current file pointer position, and places the data read in the data buffer.<br><br></li>
|
||
|
|
||
|
<li>Records the number of bytes actually read. If the end of the file is reached during the read operation, this number is less than the number specified in the bytes-to-read parameter.<br><br></li>
|
||
|
|
||
|
<li>Increases the value of the file pointer by the number of bytes read.<br><br></li>
|
||
|
|
||
|
<li>If the read operation is not successful, sets the bytes actually read to zero and returns an exception describing the error to the API.</li>
|
||
|
</ul>
|
||
|
|
||
|
<br>
|
||
|
<h3>Error Messages for Exit Program Use</h3>
|
||
|
|
||
|
<p>This section lists the messages that the exit program can return to the API.</p>
|
||
|
|
||
|
<table 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">CPF1F2C E</td>
|
||
|
<td valign="top">Read operation not allowed to file opened for write only.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F2E E</td>
|
||
|
<td valign="top">Range of bytes in file in use.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F28 E</td>
|
||
|
<td valign="top">Damaged file.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F35 E</td>
|
||
|
<td valign="top">Read file operation failed.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF1F4B E</td>
|
||
|
<td valign="top">Value for number of bytes not valid.</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">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">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">CPF1F77 E</td>
|
||
|
<td valign="top">Severe parameter error occurred on call to file system.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
<hr>
|
||
|
Exit Program 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>
|