ABCDEFGHIJKLMNOPQRSTUVWXYZ

Tcl_Main

Tcl_Main(3)                 Tcl Library Procedures                 Tcl_Main(3)



______________________________________________________________________________

NAME
       Tcl_Main,  Tcl_SetMainLoop - main program and event loop definition for
       Tcl-based applications

SYNOPSIS
       #include <tcl.h>

       Tcl_Main(argc, argv, appInitProc)

       Tcl_SetMainLoop(mainLoopProc)

ARGUMENTS
       int               argc           (in)      Number of elements in  argv.

       char              *argv[]        (in)      Array  of strings containing
                                                  command-line arguments.

       Tcl_AppInitProc   *appInitProc   (in)      Address of  an  application-
                                                  specific initialization pro-
                                                  cedure.  The value for  this
                                                  argument      is     usually
                                                  Tcl_AppInit.

       Tcl_MainLoopProc  *mainLoopProc  (in)      Address of  an  application-
                                                  specific  event  loop proce-
                                                  dure.
_________________________________________________________________


DESCRIPTION
       Tcl_Main acts as the main  program  for  most  Tcl-based  applications.
       Starting  with Tcl 7.4 it is not called main anymore because it is part
       of the Tcl library and having a function main in  a  library  (particu-
       larly  a  shared library) causes problems on many systems.  Having main
       in the Tcl library would also make it hard to use Tcl in C++  programs,
       since C++ programs must have special C++ main functions.

       Normally  each  application  contains  a  small main function that does
       nothing but invoke Tcl_Main.  Tcl_Main then does all the work of creat-
       ing and running a tclsh-like application.

       When it is has finished its own initialization, but before it processes
       commands, Tcl_Main calls the procedure given by the  appInitProc  argu-
       ment.   This  procedure provides a ``hook'' for the application to per-
       form its own initialization, such as defining application-specific com-
       mands.   The  procedure  must  have  an interface that matches the type
       Tcl_AppInitProc:
              typedef int Tcl_AppInitProc(Tcl_Interp *interp);

       AppInitProc is almost always a pointer to Tcl_AppInit; for more details
       on  this  procedure,  see  the documentation for Tcl_AppInit.  When the
       appInitProc is finished, the startup script will be evaluated.  If none
       exists, then an interactive prompt is provided.

       Tcl_SetMainLoop allows setting an event loop procedure to be run.  This |
       allows, for example, Tk to be dynamically  loaded  and  set  its  event |
       loop.   The  event  loop will run following the startup script.  If you |
       are in interactive mode, setting the main loop procedure will cause the |
       prompt to become fileevent based and then the loop procedure is called. |
       The main loop procedure must have an interface that  matches  the  type |
       Tcl_MainLoopProc:                                                       |
              typedef void Tcl_MainLoopProc(void);                             |


KEYWORDS
       application-specific  initialization, command-line arguments, main pro-
       gram



Tcl                                  8.3.4                         Tcl_Main(3)