close(n) Tcl Built-In Commands close(n)
close - Close an open channel.
Closes the channel given by channelId.
ChannelId must be an identifier for an open channel such as a Tcl standard channel (stdin, |
stdout, or stderr), the return value from an invocation of open or socket, or the result |
of a channel creation command provided by a Tcl extension.
All buffered output is flushed to the channel's output device, any buffered input is dis-
carded, the underlying file or device is closed, and channelId becomes unavailable for
If the channel is blocking, the command does not return until all output is flushed. If |
the channel is nonblocking and there is unflushed output, the channel remains open and the |
command returns immediately; output will be flushed in the background and the channel will |
be closed when all the flushing is complete.
If channelId is a blocking channel for a command pipeline then close waits for the child
processes to complete.
If the channel is shared between interpreters, then close makes channelId unavailable in |
the invoking interpreter but has no other effect until all of the sharing interpreters |
have closed the channel. When the last interpreter in which the channel is registered |
invokes close, the cleanup actions described above occur. See the interp command for a |
description of channel sharing. |
Channels are automatically closed when an interpreter is destroyed and when the process |
exits. Channels are switched to blocking mode, to ensure that all output is correctly |
flushed before the process exits.
The command returns an empty string, and may generate an error if an error occurs while
file(n), open(n), socket(n), eof(n), Tcl_StandardChannels(3)
blocking, channel, close, nonblocking
Tcl 7.5 close(n)