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

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1990-1994 The Regents of the University of California.
  3. '" Copyright (c) 1994-1997 Sun Microsystems, Inc.
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '" 
  8. '" RCS: @(#) $Id: CrtFileHdlr.3,v 1.2 1998/09/14 18:39:47 stanton Exp $
  9. '" 
  10. .so man.macros
  11. .TH Tcl_CreateFileHandler 3 8.0 Tcl "Tcl Library Procedures"
  12. .BS
  13. .SH NAME
  14. Tcl_CreateFileHandler, Tcl_DeleteFileHandler - associate procedure callbacks with files or devices (Unix only)
  15. .SH SYNOPSIS
  16. .nf
  17. fB#include <tcl.h>fR
  18. .VS
  19. .sp
  20. fBTcl_CreateFileHandlerfR(fIfd, mask, proc, clientDatafR)
  21. .sp
  22. fBTcl_DeleteFileHandlerfR(fIfdfR)
  23. .VE
  24. .SH ARGUMENTS
  25. .AS Tcl_FileProc clientData
  26. .VS
  27. .AP int fd in
  28. Unix file descriptor for an open file or device.
  29. .VE
  30. .AP int mask in
  31. Conditions under which fIprocfR should be called:
  32. OR-ed combination of fBTCL_READABLEfR, fBTCL_WRITABLEfR,
  33. and fBTCL_EXCEPTIONfR.  May be set to 0 to temporarily disable
  34. a handler.
  35. .AP Tcl_FileProc *proc in
  36. Procedure to invoke whenever the file or device indicated
  37. by fIfilefR meets the conditions specified by fImaskfR.
  38. .AP ClientData clientData in
  39. Arbitrary one-word value to pass to fIprocfR.
  40. .BE
  41. .SH DESCRIPTION
  42. .PP
  43. .VS
  44. fBTcl_CreateFileHandlerfR arranges for fIprocfR to be
  45. invoked in the future whenever I/O becomes possible on a file
  46. or an exceptional condition exists for the file.  The file
  47. is indicated by fIfdfR, and the conditions of interest
  48. .VE
  49. are indicated by fImaskfR.  For example, if fImaskfR
  50. is fBTCL_READABLEfR, fIprocfR will be called when
  51. the file is readable.
  52. The callback to fIprocfR is made by fBTcl_DoOneEventfR, so
  53. fBTcl_CreateFileHandlerfR is only useful in programs that dispatch
  54. events through fBTcl_DoOneEventfR or through Tcl commands such
  55. as fBvwaitfR.
  56. .PP
  57. fIProcfR should have arguments and result that match the
  58. type fBTcl_FileProcfR:
  59. .CS
  60. typedef void Tcl_FileProc(
  61. ClientData fIclientDatafR,
  62. int fImaskfR);
  63. .CE
  64. The fIclientDatafR parameter to fIprocfR is a copy
  65. of the fIclientDatafR
  66. argument given to fBTcl_CreateFileHandlerfR when the callback
  67. was created.  Typically, fIclientDatafR points to a data
  68. structure containing application-specific information about
  69. the file.  fIMaskfR is an integer mask indicating which
  70. of the requested conditions actually exists for the file;  it
  71. will contain a subset of the bits in the fImaskfR argument
  72. to fBTcl_CreateFileHandlerfR.
  73. .PP
  74. .PP
  75. There may exist only one handler for a given file at a given time.
  76. If fBTcl_CreateFileHandlerfR is called when a handler already
  77. exists for fIfdfR, then the new callback replaces the information
  78. that was previously recorded.
  79. .PP
  80. fBTcl_DeleteFileHandlerfR may be called to delete the
  81. file handler for fIfdfR;  if no handler exists for the
  82. file given by fIfdfR then the procedure has no effect.
  83. .PP
  84. The purpose of file handlers is to enable an application to respond to
  85. events while waiting for files to become ready for I/O.  For this to work
  86. correctly, the application may need to use non-blocking I/O operations on
  87. the files for which handlers are declared.  Otherwise the application may
  88. block if it reads or writes too much data; while waiting for the I/O to
  89. complete the application won't be able to service other events. Use
  90. fBTcl_SetChannelOptionfR with fB-blockingfR to set the channel into
  91. blocking or nonblocking mode as required.
  92. .PP
  93. .VS
  94. Note that these interfaces are only supported by the Unix
  95. implementation of the Tcl notifier.   
  96. .VE
  97. .SH KEYWORDS
  98. callback, file, handler