<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="en-us" xml:lang="en-us"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="security" content="public" /> <meta name="Robots" content="index,follow" /> <meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' /> <meta name="DC.Type" content="reference" /> <meta name="DC.Title" content="Using special attributes" /> <meta name="abstract" content="Read about special attributes unique to the optical file system." /> <meta name="description" content="Read about special attributes unique to the optical file system." /> <meta name="DC.Relation" scheme="URI" content="hfs.htm" /> <meta name="copyright" content="(C) Copyright IBM Corporation 2000, 2006" /> <meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2000, 2006" /> <meta name="DC.Format" content="XHTML" /> <meta name="DC.Identifier" content="specialattributes" /> <meta name="DC.Language" content="en-us" /> <!-- 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. --> <link rel="stylesheet" type="text/css" href="./ibmdita.css" /> <link rel="stylesheet" type="text/css" href="./ic.css" /> <title>Using special attributes </title> </head> <body id="specialattributes"><a name="specialattributes"><!-- --></a> <!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script> <h1 class="topictitle1">Using special attributes </h1> <div><p>Read about special attributes unique to the optical file system.</p> <div class="section"><p>Attributes for files and directories that are not standard and therefore not recognized by HFS are referred to by HFS as <em>extended attributes</em>. They are usually defined by a business application, but some are recognized by the optical file system as having special meaning.</p> </div> <div class="section"><h4 class="sectiontitle">OPT.CHGATDTTM attribute</h4><p>This optical attribute reflects the last date and time that the file attributes were written. It is returned to the user application as an extended attribute through the Retrieve Directory Entry Attributes (QHFRTVAT) command.</p> </div> <div class="section"><h4 class="sectiontitle">QOPT.IOMETH attribute</h4><p>This is a special extended attribute to the optical file system. Provided supported is only by directly-attached optical support devices; it is ignored by LAN support. The system also ignores this attribute when the media format is Universal Disk Format.</p> <p>When an extended attribute of this name is passed by the application as the attribute name field in the Attribute Information Table (AIT) during an open stream file request, the optical file system knows that a special method of I/O is being requested. The optical file system retrieves the special method of I/O from the attribute value field in the AIT.</p> <p> Currently, there is only one special method of I/O supported by the optical file system: You can request this method of I/O when the attribute value field for the QOPT.IOMETH attribute contains the value (EXPNBUFF). The optical software recognizes this special extended attribute as a requested I/O method, and not as a normal extended attribute. It is not hereafter associated with the file in any way, and does not appear when attributes for the file are retrieved. All read operations for the process use expanding buffer I/O until the file is closed. Methodology and restrictions for using expanding buffer I/O are listed here. In order to determine if expanding buffer I/O should be used, see Expanding buffer I/O through HFS.</p> <p>An HFS attribute in an attribute information table consists of several fields. These fields and the values you specify when opening a file for expanding buffer I/O are summarized in the following table.</p> <div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><caption>Table 1. Expanding buffer attribute definition</caption><thead align="left"><tr><th valign="top" id="d0e43">Field</th> <th valign="top" id="d0e45">Data type (see note)</th> <th valign="top" id="d0e47">Value for EBIO</th> </tr> </thead> <tbody><tr><td valign="top" headers="d0e43 ">Attribute name</td> <td valign="top" headers="d0e45 ">CHAR(*)</td> <td valign="top" headers="d0e47 ">QOPT.IOMETH</td> </tr> <tr><td valign="top" headers="d0e43 ">Attribute value</td> <td valign="top" headers="d0e45 ">CHAR(*)</td> <td valign="top" headers="d0e47 ">EXPNBUFF</td> </tr> <tr><td valign="top" headers="d0e43 ">Length attribute name</td> <td valign="top" headers="d0e45 ">BIN(4)</td> <td valign="top" headers="d0e47 ">0000000B</td> </tr> <tr><td valign="top" headers="d0e43 ">Length attribute value</td> <td valign="top" headers="d0e45 ">BIN(4)</td> <td valign="top" headers="d0e47 ">00000008</td> </tr> <tr><td colspan="3" valign="top" headers="d0e43 d0e45 d0e47 "><div class="note"><span class="notetitle">Note:</span> </div> <ul><li>CHAR(*) indicates a variable number of bytes of character information. </li> <li>BIN(4) indicates 4 bytes of binary information.</li> <li>All character fields should be set in uppercase.</li> </ul> </td> </tr> </tbody> </table> </div> <div class="p">In addition to the values for attribute fields, two additional fields are required to build an attribute information table: <ul><li>The number of attributes defined in the table</li> <li>The table offset to each attribute, in bytes</li> </ul> </div> <div class="p">The Open Stream File (QHFOPNSF) API requires 10 bytes of open information as input. When you attempt to open a file for expanding buffer I/O, the open information is subject to the following restrictions: <ul><li>The action to take if a file exists must be to open the file.</li> <li>The action to take if a file does not exist must be to return an error. </li> <li>The lock mode for the file must be Deny Write or Deny Read/Write (exclusive). </li> <li>The access mode for the file must be Read Only.</li> </ul> </div> <p>If there is an expanded buffer I/O attribute in the attribute information table and any of these restrictions are not observed, an OPT1133 message is issued, indicating which of the fields in the open information was passed in error.</p> <p>For information about the format of attributes, the Attribute Information Table, or the Open Stream File API, see the <a href="../apiref/api.htm">APIs topic</a>.</p> </div> <div class="section"><h4 class="sectiontitle">Restrictions for expanding buffer I/O</h4><div class="p">In addition to the restrictions that were detailed when opening a file for expanded buffer I/O, you cannot use the following APIs for expanding buffer I/O, after a file is opened: <ul><li>Write Stream File</li> <li>Set Stream File Size</li> <li>Lock or Unlock Range in Stream File</li> </ul> </div> </div> </div> <div> <div class="familylinks"> <div class="parentlink"><strong>Parent topic:</strong> <a href="hfs.htm" title="Read this topic collection to learn how to program with the hierarchical file system (HFS).">Hierarchical file system (HFS) programming</a></div> </div> </div> </body> </html>