Reading a File Label from a Labeled Tape File [ Accessing Files Programmer's Guide ] MPE/iX 5.0 Documentation
Accessing Files Programmer's Guide
Reading a File Label from a Labeled Tape File
The FREADLABEL intrinsic is used to read a user-defined label located on
a labeled magnetic tape file or a labeled disk file. To read a
user-defined header label, the FREADLABEL intrinsic must be called before
the first FREAD is issued for the file. Execution of the first FREAD
causes MPE/iX to skip past any unread user-defined header labels.
Example 9-5 is an HP Pascal/iX code segment that reads a user label
located in the user-defined label portion of data_file, a labeled
magnetic tape file. The label is printed to `STDLIST (identified by
list_file) using the FWRITE intrinsic. Assume that both data_file and
list_file have been opened elsewhere with calls to HPFOPEN/FOPEN.
Example 9-5. Reading a User Label from a Labeled Magnetic Tape File
procedure read_user_label;
var
label : packed array [1..80] of char; {holds label from file }
length : shortint; {length of label }
control_code : 0..65535; {required by FWRITE }
begin
length := 40 {required ANSI label size}
control_code := 0 {set to default }
FREADLABEL ( data_file, {file number of tape file}
label, {returns label }
length {# of halfwords to read}
);
if ccode <> cce then handle_file_error (data_file);
FWRITE ( list_file, {output to $STDLIST }
label, {label read by FREADLABEL }
length, {length of label }
control_code {default condition }
);
if ccode <> cce then handle_file_error (list_file);
end; {end read_user_label }
If an error is encountered by either FREADLABEL or FWRITE, procedure
handle_file_error is invoked. For more information about FREADLABEL
intrinsic parameters, refer to the MPE/iX Intrinsics Reference Manual
(32650-90028). For more information about the FWRITE intrinsic, refer to
chapter 8, "Writing to a File". In appendix A, "HP Pascal/iX Program
Examples", example A-2 uses a similar procedure to read a user label from
a labeled magnetic tape file.
MPE/iX 5.0 Documentation