Tcl_GetStdChannel(3) Tcl Library Procedures Tcl_GetStdChannel(3)
_________________________________________________________________________________________________
NAME
Tcl_GetStdChannel, Tcl_SetStdChannel - procedures for retrieving and replacing the stan-
dard channels
SYNOPSIS
#include <tcl.h>
Tcl_Channel
Tcl_GetStdChannel(type)
Tcl_SetStdChannel(channel, type)
ARGUMENTS
int type (in) The identifier for the standard channel to retrieve or
modify. Must be one of TCL_STDIN, TCL_STDOUT, or
TCL_STDERR.
Tcl_Channel channel (in) The channel to use as the new value for the specified
standard channel.
_________________________________________________________________
DESCRIPTION
Tcl defines three special channels that are used by various I/O related commands if no
other channels are specified. The standard input channel has a channel name of stdin and
is used by read and gets. The standard output channel is named stdout and is used by
puts. The standard error channel is named stderr and is used for reporting errors. In
addition, the standard channels are inherited by any child processes created using exec or
open in the absence of any other redirections.
The standard channels are actually aliases for other normal channels. The current channel
associated with a standard channel can be retrieved by calling Tcl_GetStdChannel with one
of TCL_STDIN, TCL_STDOUT, or TCL_STDERR as the type. The return value will be a valid
channel, or NULL.
A new channel can be set for the standard channel specified by type by calling Tcl_SetStd-
Channel with a new channel or NULL in the channel argument. If the specified channel is
closed by a later call to Tcl_Close, then the corresponding standard channel will automat-
ically be set to NULL.
If a non-NULL value for channel is passed to Tcl_SetStdChannel, then that same value
should be passed to Tcl_RegisterChannel, like so:
Tcl_RegisterChannel(NULL, channel);
This is a workaround for a misfeature in Tcl_SetStdChannel that it fails to do some refer-
ence counting housekeeping. This misfeature cannot be corrected without contradicting the
assumptions of some existing code that calls Tcl_SetStdChannel.
If Tcl_GetStdChannel is called before Tcl_SetStdChannel, Tcl will construct a new channel
to wrap the appropriate platform-specific standard file handle. If Tcl_SetStdChannel is
called before Tcl_GetStdChannel, then the default channel will not be created.
If one of the standard channels is set to NULL, either by calling Tcl_SetStdChannel with a
NULL channel argument, or by calling Tcl_Close on the channel, then the next call to
Tcl_CreateChannel will automatically set the standard channel with the newly created chan-
nel. If more than one standard channel is NULL, then the standard channels will be
assigned starting with standard input, followed by standard output, with standard error
being last.
See Tcl_StandardChannels for a general treatise about standard channels and the behaviour
of the Tcl library with regard to them.
SEE ALSO
Tcl_Close(3), Tcl_CreateChannel(3), Tcl_Main(3), tclsh(1)
KEYWORDS
standard channel, standard input, standard output, standard error
Tcl 7.5 Tcl_GetStdChannel(3)
Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache/2.4.6 (CentOS)
Under GNU General Public License
2025-06-23 22:04 @127.0.0.1 CrawledBy Wget/1.21.2