Open System Services System Calls Reference Manual (G06.29+, H06.08+, J06.03+)

System Functions (n - p) PUT_READX(2)
Reading of an exact subset of records
If an exact subset is being read, the only records returned are
those whose key field, as designated by the current-key specifier,
contains a value of exactly the comparison length bytes (see the
Guardian KEYPOSITION procedure in the Guardian Procedure
Calls Reference Manual) and is equal to the key. When the
current key no longer matches, an EOF indication returns. The
exact subset for a key field having a unique value is at most one
record.
Indicators after PUT_READX() call
After a successful PUT_READX() call, the current-state indica-
tors have these values:
Current position is the record just read.
Positioning mode is unchanged.
Comparison length is unchanged.
Current primary-key value is set to the value of the
primary-key field in the record.
Unstructured files
Data transfer Data transfer begins from an unstructured disk file at the position
indicated by the next-record pointer. The READ[X] procedure
reads records sequentially on the basis of a beginning relative
byte address (RBA) and the length of the records read.
Odd unstructured
If the unstructured file is created with the odd unstructured attri-
bute (also known as ODDUNSTR) set, the number of bytes read
is exactly the number of bytes specified with read_count. If the
odd unstructured attribute is not set when the file is created, the
value of read_count is rounded up to an even number before the
PUT_READX() operation is executed.
You set the odd unstructured attribute with the Guardian
FILE_CREATE_, FILE_CREATELIST_, or CREATE pro-
cedure, or with the File Utility Program (FUP) SET and
CREATE commands.
read_count Unstructured files are transparently blocked. The BUFFERSIZE
file attribute value, if not set by the user, defaults to 4096 bytes.
The BUFFERSIZE attribute value (which is set by specifying
PUT_SETMODE() function 93) does not constrain the allow-
able read_count in any way. However, there is a performance
penalty if the PUT_READX() call does not start on a BUFFER-
SIZE boundary and does not have a read_count that is an
integral multiple of the BUFFERSIZE. The DP2 disk process
executes your requested I/O in (possibly multiple) units of BUF-
FERSIZE blocks starting on a block boundary.
527186-023 Hewlett-Packard Company 5247