HP 3000 Manuals

FREADLABEL [ KSAM/3000 Reference Manual ] MPE/iX 5.0 Documentation


KSAM/3000 Reference Manual

FREADLABEL 

INTRINSIC NUMBER 19

Reads a user file label.

                  IV       LA     IV     IV    O-V
     FREADLABEL(filenum,target,tcount,labelid);

The FREADLABEL intrinsic reads a user-defined label from a disc file.
Before reading occurs, the user's read-access capability is verified.
Note that MPE automatically skips over any unread user labels when the
first FREAD intrinsic call is issued for a file; therefore the FREADLABEL
intrinsic should be called immediately after the FOPEN intrinsic has
opened the file.

PARAMETERS 

filenum          integer by value (required) 

                 A word identifier supplying the file number of the file
                 whose label is to be read.

target           logical array (required) 

                 An array in the stack to which the label is to be
                 transferred.  This array should be large enough to hold
                 the number of words specified by tcount.

tcount           integer by value (optional) 

                 An integer specifying the number of words to be
                 transferred from the label.  Tcount must not be greater
                 than 128 words.

                 Default:  128 words. 

labelid          integer by ualue (optional) An integer specifying the
                 label number where the first user label is numbered 0.

                 Default:  A default value of 0 is assigned. 

CONDITION CODES 

CCE              The label was read

CCG              The intrinsic referenced a label beyond the last label
                 written on the file.

CCL              The label was not read because an error occurred.

SPECIAL CONSIDERATIONS 

Split stack calls permitted.

USING FREADLABEL 

If the KSAM file contains one or more user labels (written with
FWRITELABEL), you can read these labels with the FREADLABEL intrinsic.
During the normal file reads with FREAD, FREADC, FREADBYKEY, or FREADDIR,
any user labels are ignored.  The number of user labels that can be
written to the file is specified by the userlabels parameter of FOPEN, or
in the BUILD command of KSAMUTIL.

Since MPE checks to insure that you have opened the file with read access
before executing FREADLABEL, you must open the file with an FOPEN
aoptions setting that permits reading.  It must be one of the following:

bits 12:4        = 0000 (octal 0) read only access

                 = 0100 (octal 4) input/output access

                 = 0101 (octal 5) update access

In addition, the FOPEN userlabels parameter must be set to a value of 1
or greater depending on the number of labels that may be written to the
file.

Suppose you have opened the file KDATA with the following call:

          KFILNUM:=FOPEN(KDATA,3,4,,,,2);
                               / ^    \
                              /  |     \
                             /   |   number of labels
                    old user/    |
                    domain       |
                                 |
                                 |
                                 input/output access

You might read the second label with the following call:

          FREADLABEL(KFILNUM,LABELBUF,,1)

This reads the second label into the array LABELBUF. Note that label
numbering begins with 0; if the labelid parameter were zero or omitted,
then the first label would be read.  By default, the number of words read
from the label is 128.



MPE/iX 5.0 Documentation