Closing a Disk File [ Accessing Files Programmer's Guide ] MPE/iX 5.0 Documentation
Accessing Files Programmer's Guide
Closing a Disk File
The following examples show how you use the FCLOSE intrinsic to close a
disk file:
* "Closing a New Disk File as Permanent" shows an example of an
FCLOSE call that closes the file opened in Example 5-1.
* "Closing a Permanent Disk File" shows an example of an FCLOSE call
that closes the file opened in Example 5-2.
Closing a new disk file as permanent
Example 6-1 is an HP Pascal/XL code segment containing an HPFOPEN call
that opens a new file, and an FCLOSE intrinsic call that changes the
disposition of the file to permanent prior to closing it. (Refer to
Example 5-1 for details on this HPFOPEN call.)
In Example 6-1, there is a disposition conflict between the FCLOSE call
and the HPFOPEN call that opened the file identified by file_num:
* The disposition parameter of FCLOSE specifies that the file is to
be closed as a permanent file.
* The final disposition option of the HPFOPEN call specifies that
the file should be closed as a temporary file.
The disposition parameter of FCLOSE takes precedence over the final
disposition option of HPFOPEN because the integer value of FCLOSE's
disposition (1) is a smaller positive value than that of HPFOPEN's final
disposition option (2).
Example 6-1. Closing a New Disk File as Permanent
:
save_temp := 2;
HPFOPEN(file_num, status,
formal_designator_option, file_name, {HPFOPEN formaldesignator option}
record_size_option, line_len, {HPFOPEN record size option}
final_disp_option, save_temp, {HPFOPEN final disp option }
ASCII_binary_option, ascii {HPFOPEN ASCII/binary option}
);
:
error := 1;
disposition := 1; {close file as a permanent file }
security_code := 0; {No additional restrictions }
FCLOSE ( file_num, {file_num returned by HPFOPEN }
disposition, {close file with permanent disposition }
security_code {no additional restrictions are added }
);
if ccode = error then handle_file_error (file_num, 0)
:
If the file could not be closed because an incorrect file_num was
specified, or another file of the same name and disposition already
exists, ccode returns a value of one, thus invoking the error-handling
procedure handle_file_error.
In Appendix A, "Pascal/XL Program Examples," Example A-1 uses a similar
procedure to close a new disk file. For more information about
FCLOSE parameters, refer to the MPE/iX Intrinsics Reference Manual
(32650-90028).
Closing a permanent disk file
Example 6-2 closes the permanent file opened in Example 5-2. (Refer to
Example 5-2 for details on this HPFOPEN call.) The disposition of the
file is not changed when it is closed. The file remains a permanent disk
file.
Example 6-2. Closing a Permanent Disk File
:
HPFOPEN(file_num, status,
formal_designator_option, file_name, {HPFOPEN formaldesignator option}
domain_option, permanent, {HPFOPEN domain option }
access_type_option, update, {HPFOPEN access type option}
dynamic_locking_option, lockable, {HPFOPEN dynamic locking option}
exclusive_option, shared {HPFOPEN exclusive option }
ASCII_binary_option, ascii {HPFOPEN ASCII/binary option}
);
:
error := 1;
disposition := 0; {no change to disposition }
security_code := 0; {No additional restrictions }
FCLOSE ( file_num, {file_num returned by HPFOPEN }
disposition, {don't change prior disposition }
security_code {no additional restrictions are added }
);
if ccode = error then handle_file_error (file_num, 0)
:
If the file could not be closed because an incorrect file_num was
specified, or another file of the same name and disposition already
exists, ccode returns a value of one, thus invoking the error-handling
procedure handle_file_error.
In Appendix A, "Pascal/XL Program Examples," Example A-5 uses a similar
procedure to close a permanent disk file. For more information about
FCLOSE parameters, refer to the MPE/iX Intrinsics Reference Manual
(32650-90028).
MPE/iX 5.0 Documentation