GetStdChan.3
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:4k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1996 by Sun Microsystems, Inc.
  3. '"
  4. '" See the file "license.terms" for information on usage and redistribution
  5. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  6. '" 
  7. '" RCS: @(#) $Id: GetStdChan.3,v 1.4.4.1 2006/06/06 20:07:36 dgp Exp $
  8. '" 
  9. .so man.macros
  10. .TH Tcl_GetStdChannel 3 7.5 Tcl "Tcl Library Procedures"
  11. .BS
  12. '" Note:  do not modify the .SH NAME line immediately below!
  13. .SH NAME
  14. Tcl_GetStdChannel, Tcl_SetStdChannel - procedures for retrieving and replacing the standard channels
  15. .SH SYNOPSIS
  16. .nf
  17. fB#include <tcl.h>fR
  18. .sp
  19. Tcl_Channel
  20. fBTcl_GetStdChannelfR(fItypefR)
  21. .sp
  22. fBTcl_SetStdChannelfR(fIchannel, typefR)
  23. .sp
  24. .SH ARGUMENTS
  25. .AS Tcl_Channel channel in
  26. .AP int type in
  27. The identifier for the standard channel to retrieve or modify.  Must be one of
  28. fBTCL_STDINfR, fBTCL_STDOUTfR, or fBTCL_STDERRfR.
  29. .AP Tcl_Channel channel in
  30. The channel to use as the new value for the specified standard channel.
  31. .BE
  32. .SH DESCRIPTION
  33. .PP
  34. Tcl defines three special channels that are used by various I/O related
  35. commands if no other channels are specified.  The standard input channel
  36. has a channel name of fBstdinfR and is used by fBreadfR and fBgetsfR.
  37. The standard output channel is named fBstdoutfR and is used by
  38. fBputsfR.  The standard error channel is named fBstderrfR and is used for 
  39. reporting errors.  In addition, the standard channels are inherited by any
  40. child processes created using fBexecfR or fBopenfR in the absence of any
  41. other redirections.
  42. .PP
  43. The standard channels are actually aliases for other normal channels.  The
  44. current channel associated with a standard channel can be retrieved by calling
  45. fBTcl_GetStdChannelfR with one of 
  46. fBTCL_STDINfR, fBTCL_STDOUTfR, or fBTCL_STDERRfR as the fItypefR.  The
  47. return value will be a valid channel, or NULL.
  48. .PP
  49. A new channel can be set for the standard channel specified by fItypefR 
  50. by calling fBTcl_SetStdChannelfR with a new channel or NULL in the
  51. fIchannelfR argument.  If the specified channel is closed by a later call to
  52. fBTcl_ClosefR, then the corresponding standard channel will automatically be
  53. set to NULL.
  54. .PP
  55. If a non-NULL value for fIchannelfR is passed to fBTcl_SetStdChannelfR,
  56. then that same value should be passed to fBTcl_RegisterChannelfR, like so:
  57. .CS
  58. Tcl_RegisterChannel(NULL, channel);
  59. .CE
  60. This is a workaround for a misfeature in fBTcl_SetStdChannelfR that it
  61. fails to do some reference counting housekeeping.  This misfeature cannot
  62. be corrected without contradicting the assumptions of some existing
  63. code that calls fBTcl_SetStdChannelfR.
  64. .PP
  65. If fBTcl_GetStdChannelfR is called before fBTcl_SetStdChannelfR, Tcl will
  66. construct a new channel to wrap the appropriate platform-specific standard 
  67. file handle.  If fBTcl_SetStdChannelfR is called before
  68. fBTcl_GetStdChannelfR, then the default channel will not be created.
  69. .PP
  70. If one of the standard channels is set to NULL, either by calling
  71. fBTcl_SetStdChannelfR with a NULL fIchannelfR argument, or by calling
  72. fBTcl_ClosefR on the channel, then the next call to fBTcl_CreateChannelfR
  73. will automatically set the standard channel with the newly created channel.  If
  74. more than one standard channel is NULL, then the standard channels will be
  75. assigned starting with standard input, followed by standard output, with
  76. standard error being last.
  77. .PP
  78. See fBTcl_StandardChannelsfR for a general treatise about standard
  79. channels and the behaviour of the Tcl library with regard to them.
  80. .PP
  81. .SH "SEE ALSO"
  82. Tcl_Close(3), Tcl_CreateChannel(3), Tcl_Main(3), tclsh(1)
  83. .SH KEYWORDS
  84. standard channel, standard input, standard output, standard error