Extended attributes

Extended attributes are special attributes for files and directories that are not standard and therefore not recognized by the hierarchical file system (HFS). They are typically defined by a business application, but some are recognized by the optical file system as having special meanings.

OPT.CHGATDTTM attribute

The OPT.CHGATDTTM 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

The QOPT.IOMETH attribute is a special attribute to the optical file system. Support is provided 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 the Expanding buffer I/O method topic.

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
Notes:
  • 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.

The APIs topic contains more information about the format of attributes, the Attribute Information Table, or the Open Stream File API.

Restrictions for expanding buffer I/O

In addition to the restrictions that are 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:
  • Lock or Unlock Range in Stream File
  • Set Stream File Size
  • Write Stream File