Using KSAM/XL and KSAM 64 (32650-90886)

134 Chapter9
KSAM Intrinsics
FREAD
FREAD
Reads a logical record in key sequence from a file to the buffer.
Syntax
I16 I16V UDS I16V
lgth
:=FREAD(
filenum,buffer,length
);
Functional Return
lgth
16-bit signed integer (assigned functional return)
Returns the length of the data transferred to
buffer
:
If a negative value is passed in the
length
parameter,the
lgth
is a
positive value indicating the number of bytes transferred.
If a positive value is passed in the
length
parameter, the
lgth
is a
positive value indicating the number of halfwords transferred.
If a value of 0 is passed in the
length
parameter, the position is
identified, but the data is not returned.
Parameters
filenum
16-bit signed integer by value (required)
Passes the file number of the file to be read.
buffer
user-defined structure (required)
Returns the record that was read. This structure must be large enough to
hold all of the information to be transferred.
length
16-bit signed integer by value (required)
Passes the length of the data to be transferred to
buffer
. If this value is
positive, it signifies the length in halfwords. If negative, it signifies the
length in bytes. If zero, no transfer occurs.
If
length
is larger than the size of the logical record, transfer is limited to
the length of the logical record. If less than the size of the logical record,
the transfer is limited to the length specified.
Operation Notes
This intrinsic reads the advance flag and advances to the next record if the flag is set to
TRUE. It positions the logical record pointer and the physical pointer to the appropriate
record. When its function is complete, it sets the advance flag to TRUE.
When the logical end-of-data is encountered, CCG is returned to the process.