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