Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP Pascal/HP-UX Programmer's Guide > Chapter 3 Input/Output

Closing Files

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Glossary

 » Index

When your program closes a file, it breaks the association between the logical file and the physical file; therefore, it cannot access the file or file buffer variable. It must reopen the file before attempting to operate on it in any other way, or it is a run-time error. One way to close a file is with the predefined procedure close. A call to close has the following syntax and parameters.

Syntax

close (logical_file [, close_option])

Parameters

logical_file

The name of the logical file to be closed.

close_option

A string or PAC expression whose value is one of the following:

SAVE or LOCK

The file is saved permanently.

TEMP or NORMAL

The file is saved temporarily. What happens to the temporary file when the current session or job ends is system-dependent. For the MPE/iX operating system, see Appendix A “MPE/iX Dependencies ”; for HP-UX, see Appendix B “HP-UX Dependencies ”.

CRUNCH

The effect of this option on the space after the end-of-file marker is system-dependent. See Appendix A “MPE/iX Dependencies ” (MPE/iX) or Appendix B “HP-UX Dependencies ” (HP-UX).

PURGE

The file is removed.

A program also closes a logical file and its associated physical file when the program:

  • Terminates.

  • Exits the routine that declares the file, either because the routine ends, because it executes a goto statement that transfers control to a routine outside its scope, or it calls the predefined procedure escape because of a run-time error Chapter 11 “Error Recovery and Debugging ” explains escape).

  • Reopens the file (in which case the file is closed before it is reopened).

Also, a program closes a file that is stored on the heap when it deallocates the file's heap space by calling the predefined procedure dispose or release with the appropriate parameter (see Chapter 6 “Dynamic Variables ”).

A program closes a pre-existing physical file (one that it did not create) in the same state that it was in before the program opened it. If a program creates a file, however, it can specify the state in which the close procedure closes it.

Example

PROGRAM prog;

LABEL
9999;

TYPE
ftype = FILE OF integer;

VAR
f1 : ftype;

PROCEDURE p;
VAR
f2 : ftype;
BEGIN
reset(f2); {Opens f2}
goto 9999; {Closes f2 and f3}
END;

PROCEDURE q;
VAR
f3 : ftype;
BEGIN
open(f3); {Opens f3}
p;
{p never returns here}
END;

BEGIN
rewrite(f1); {Opens f1}
q;
9999 : reset(f1); {Closes and reopens f1}
close(f1); {Closes f1}
END.
Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© Hewlett-Packard Development Company, L.P.