Using special attributes

Read about special attributes unique to the optical file system.

Attributes for files and directories that are not standard and therefore not recognized by HFS are referred to by HFS as extended attributes. They are usually defined by a business application, but some are recognized by the optical file system as having special meaning.

OPT.CHGATDTTM attribute

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.

QOPT.IOMETH attribute

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.

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.

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.

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.

Table 1. Expanding buffer attribute definition
Field Data type (see note) Value for EBIO
Attribute name CHAR(*) QOPT.IOMETH
Attribute value CHAR(*) EXPNBUFF
Length attribute name BIN(4) 0000000B
Length attribute value BIN(4) 00000008
Note:
  • CHAR(*) indicates a variable number of bytes of character information.
  • BIN(4) indicates 4 bytes of binary information.
  • All character fields should be set in uppercase.
In addition to the values for attribute fields, two additional fields are required to build an attribute information table:
  • The number of attributes defined in the table
  • The table offset to each attribute, in bytes
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:
  • The action to take if a file exists must be to open the file.
  • The action to take if a file does not exist must be to return an error.
  • The lock mode for the file must be Deny Write or Deny Read/Write (exclusive).
  • The access mode for the file must be Read Only.

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.

For information about the format of attributes, the Attribute Information Table, or the Open Stream File API, see the APIs topic.

Restrictions for expanding buffer I/O

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:
  • Write Stream File
  • Set Stream File Size
  • Lock or Unlock Range in Stream File