# Directives

CLOSE | Close File

## Format

CLOSE {(*) | (chan)}[,(chan)...[,ERR=stmtref])]

Where:

* | Asterisk denotes "all OPEN local channels". CLOSE (*) resets all files then closes everything but channel 0 (unless the 'WK' parameter is set). This closes all open windows and purges graphical controls from the system.
chan | Channel or logical file number. #### Note: If running with the 'FF' system parameter (FID Format) set to 2 (Thoroughbred®), closing channel 0 will be treated the same as CLOSE (*).
stmtref | Program line number or statement label to which to transfer control.

## Description

Use the CLOSE directive to close a given logical file number. The memory used for buffers and control information is returned to the system. Once closed, the file (channel) number can be reused for a different file.

#### Note:
A CLOSE directive will delete a memory file. See *MEMORY* Create and Use Memory File. When you CLOSE (chan), PxPlus returns all memory that was occupied by the memory file to the system.

The ERR= branch will be taken should an error occur during the close. If the application tries to close an unopened file, an error will only be generated if an ERR= branch is provided. If an ERR= branch is not provided, the close is assumed to have occurred previously and no error is generated.

#### Note:
When executed within an object (in Object Oriented Programming), CLOSE (*) will close any standard local files as well as files owned by the object.

## See Also

OPEN Open a File for Processing
BEGIN Reset Files and Variables
START Restart Session
'WK' Keep Window

## Example

The following will open channel 30, print to it and then close it:

> open (30)"PRINT_DEVICE"
> print (30)
> close (30)

Assuming the following logic:

> CSTFILE=hfn;
> open (CSTFILE)"CSTFILE"
> PRDFILE=unt;
> open (PRDFILE)"PRDFILE"
> ORDFILE=7;
> open (ORDFILE)"ORDFILE"
> print CSTFILE,PRDFILE,ORDFILE
> stop
> ->run
> 63 5 7

Either of the two statements below will close channels 63, 5 and 7. The second statement closes all other open local channels as well:

> close (CSTFILE),(PRDFILE),(ORDFILE) ! Just closes channels 63,5,7
> close (*) ! Closes ALL open file channels (i.e. 63,5,7 and 30)

Thoroughbred® is a registered trademark of Thoroughbred Software International Inc.