Tcl_UnstackChannel man page on QNX

Printed from

Tcl_StackChannel(3)	    Tcl Library Procedures	   Tcl_StackChannel(3)


       Tcl_StackChannel,  Tcl_UnstackChannel,  Tcl_GetStackedChannel, Tcl_Get‐
       TopChannel - stack an I/O channel on top of another, and undo it

       #include <tcl.h>

       Tcl_StackChannel(interp, typePtr, clientData, mask, channel)

       Tcl_UnstackChannel(interp, channel)



       Tcl_Interp	 *interp	(in)	  Interpreter	 for	 error

       Tcl_ChannelType	 *typePtr	(in)	  The  new  channel I/O proce‐
						  dures to use for channel.

       ClientData	 clientData	(in)	  Arbitrary one-word value  to
						  pass	to  channel I/O proce‐

       int		 mask		(in)	  Conditions under which chan‐
						  nel will be used: OR-ed com‐
						  bination  of	 TCL_READABLE,
						  TION.	 This can be a	subset
						  of  the operations currently
						  allowed on channel.

       Tcl_Channel	 channel	(in)	  An existing Tcl channel such
						  as  returned	by Tcl_Create‐

       These functions are for use by extensions that add processing layers to
       Tcl I/O channels.  Examples include compression and encryption modules.
       These functions transparently stack and unstack a new channel on top of
       an existing one.	 Any number of channels can be stacked together.

       The  implementation  of	the Tcl channel code was rewritten in 8.3.2 to
       correct some problems with the previous implementation with  regard  to
       stacked	channels.   Anyone  using stacked channels or creating stacked
       channel	drivers	 should	 update	 to  the   new	 TCL_CHANNEL_VERSION_2
       Tcl_ChannelType structure.  See Tcl_CreateChannel for details.

       Tcl_StackChannel	 stacks	 a new channel on an existing channel with the
       same name that was registered for channel by Tcl_RegisterChannel.

       Tcl_StackChannel works by creating a new channel structure and  placing
       itself  on  top	of  the	 channel stack.	 EOL translation, encoding and
       buffering options are shared between all channels in  the  stack.   The
       hidden  channel	does  no buffering, newline translations, or character
       set encoding.  Instead, the buffering, newline translations, and encod‐
       ing functions all remain at the top of the channel stack.  A pointer to
       the new top channel structure is returned.  If  an  error  occurs  when
       stacking the channel, NULL is returned instead.

       The mask parameter specifies the operations that are allowed on the new
       channel.	 These can be a subset of the operations allowed on the origi‐
       nal  channel.   For  example, a read-write channel may become read-only
       after the Tcl_StackChannel call.

       Closing a channel closes the channels stacked below it.	The  close  of
       stacked	channels  is executed in a way that allows buffered data to be
       properly flushed.

       Tcl_UnstackChannel reverses the process.	 The old channel is associated
       with   the   channel   name,   and   the	 processing  module  added  by
       Tcl_StackChannel is destroyed.	If  there  is  no  old	channel,  then
       Tcl_UnstackChannel  is  equivalent  to  Tcl_Close.   If an error occurs
       unstacking the channel, TCL_ERROR  is  returned,	 otherwise  TCL_OK  is

       Tcl_GetTopChannel  returns the top channel in the stack of channels the
       supplied channel is part of.

       Tcl_GetStackedChannel returns the channel  in  the  stack  of  channels
       which is just below the supplied channel.

       Notifier(3), Tcl_CreateChannel(3), Tcl_OpenFileChannel(3), vwait(n).

       channel, compression

Tcl				      8.3		   Tcl_StackChannel(3)
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server QNX

List of man pages available for QNX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net