tcl7.6 User Commands - close
NAME
close - Close an open channel.
SYNOPSIS
close channelId
DESCRIPTION
Closes the channel given by channelId. ChannelId must be a
channel identifier such as the return value from a previous
open or socket command. 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 chan-
nelId becomes unavailable for use.
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 descrip- |
tion 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 flushing output.
KEYWORDS
blocking, channel, close, nonblocking