close-input-port, close-output-port - close a port
(import (rnrs)) ;R6RS
(import (rnrs io simple)) ;R6RS
(import (scheme r5rs)) ;R7RS
(import (scheme base)) ;R7RS
Closes the file associated with
rendering the port incapable of delivering or accepting characters.
These routines have no effect if the file has already been closed.
is a custom port then the closer procedure is called before the
port is really closed.
Custom ports have a single closer procedure, so they do not
compose well with only closing one direction. R6RS does not
explicitly make any mention of closing only one direction.
Scheme implementations may provide ports which are simultaneously
input and output ports, such as sockets; the
procedures can then be used to close the input and output sides of the
Returns unspecified values.
(define p (open-output-file "hello.txt"))
(display "Hello, world\n" p)
Ports are often connected to some limited resource, such as a file
descriptor. Closing ports is important to avoid resource leaks. Some
implementations will garbage collect ports, but this is not required.
In R6RS these procedures are part of the "simple I/O" library, which
is provided for compatibility with code written for R5RS and earlier
These procedures are provided for portability with code written for
R5RS and earlier reports.
This procedure can raise exceptions with the following condition types:
- &assertion (R6RS)
The wrong number of arguments was passed or an argument was outside its domain.
The assertions described above are errors.
Implementations may signal an error, extend the procedure's
domain of definition to include such arguments,
or fail catastrophically.
It is an error to
apply these procedures to a port which is not an
input or output port, respectively.
This page is part of the
It includes materials from the RnRS documents.
More information can be found at
It is often better to use
or one of the related procedures. They make it easier to ensure that a
port is closed when an exception is raised.
Markup created by unroff 1.0sc, March 04, 2023.