DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

Tcl_CreateFileHandler(3tcl)





Tcl_CreateFileHandler(3Tcl Library ProcedureTcl_CreateFileHandler(3)


_________________________________________________________________


NAME

     Tcl_CreateFileHandler,  Tcl_DeleteFileHandler  -   associate
     procedure callbacks with files or devices (Unix only)


SYNOPSIS

     #include <tcl.h>

     Tcl_CreateFileHandler(fd, mask, proc, clientData)

     Tcl_DeleteFileHandler(fd)


ARGUMENTS

     int fd (in)                           Unix  file  descriptor
                                           for  an  open  file or
                                           device.

     int mask (in)                         Conditions under which
                                           proc should be called:
                                           OR-ed  combination  of
                                           TCL_READABLE,
                                           TCL_WRITABLE,      and
                                           TCL_EXCEPTION.  May be
                                           set  to  0   to   tem-
                                           porarily   disable   a
                                           handler.

     Tcl_FileProc *proc (in)               Procedure  to   invoke
                                           whenever  the  file or
                                           device  indicated   by
                                           file  meets the condi-
                                           tions   specified   by
                                           mask.

     ClientData clientData (in)            Arbitrary     one-word
                                           value to pass to proc.
_________________________________________________________________


DESCRIPTION

     Tcl_CreateFileHandler arranges for proc to be invoked in the
     future  whenever I/O becomes possible on a file or an excep-
     tional condition exists for the file.  The file is indicated
     by fd, and the conditions of interest are indicated by mask.
     For example, if mask is TCL_READABLE, proc  will  be  called
     when  the file is readable.  The callback to proc is made by
     Tcl_DoOneEvent, so Tcl_CreateFileHandler is only  useful  in
     programs  that  dispatch  events  through  Tcl_DoOneEvent or
     through Tcl commands such as vwait.

Tcl                     Last change: 8.0                        1


Tcl_CreateFileHandler(3Tcl Library ProcedureTcl_CreateFileHandler(3)


     Proc should have arguments and result that  match  the  type
     Tcl_FileProc:
          typedef void Tcl_FileProc(
                  ClientData clientData,
                  int mask);
     The clientData parameter to proc is a copy of the clientData
     argument  given  to  Tcl_CreateFileHandler when the callback
     was created.  Typically, clientData points to a data  struc-
     ture  containing  application-specific information about the
     file.  Mask is an  integer  mask  indicating  which  of  the
     requested  conditions actually exists for the file;  it will
     contain a subset  of  the  bits  in  the  mask  argument  to
     Tcl_CreateFileHandler.

     There may exist only one handler for a given file at a given
     time.   If  Tcl_CreateFileHandler  is  called when a handler
     already exists for fd, then the new  callback  replaces  the
     information that was previously recorded.

     Tcl_DeleteFileHandler may  be  called  to  delete  the  file
     handler  for fd;  if no handler exists for the file given by
     fd then the procedure has no effect.

     The purpose of file handlers is to enable an application  to
     respond  to  events  while waiting for files to become ready
     for I/O.  For this to work correctly,  the  application  may
     need  to  use  non-blocking  I/O operations on the files for
     which handlers are declared.  Otherwise the application  may
     block if it reads or writes too much data; while waiting for
     the I/O to complete the application will not be able to ser-
     vice  other  events. Use Tcl_SetChannelOption with -blocking
     to set the channel into  blocking  or  nonblocking  mode  as
     required.

     Note that these interfaces are only supported  by  the  Unix
     implementation of the Tcl notifier.


KEYWORDS

     callback, file, handler

Tcl                     Last change: 8.0                        2


Man(1) output converted with man2html