Writing C and C++ code that uses the Expect extension is similar to writing C code that uses Tcl. For example, you can call
Tcl_Eval to execute any Expect or Tcl command. The following statements spawn a
telnet process and print the new spawn id. Notice the explicit declaration of
telnet_cmd as an array instead of a pointer to a string constant. The array declaration guarantees that the characters are put into writeable memory—a requirement of
char *spawn_id; char telnet_cmd = "spawn telnet"; Tcl_Eval(interp,telnet_cmd); spawn_id = Tcl_GetVar(interp,"spawn_id",0); printf("spawn id is %s\n",spawn_id);
It is possible to call Expect’s commands directly. However, this is a little harder and there is generally no good reason to do so, so it is not documented here.
A number of functions and variables are explicitly made public with C and C++ interfaces. Including the file
expect_tcl.h gains access to these public symbols. They are defined in this section. Most of them are useful for writing your own
main customized from Expect or
tclsh. The descriptions are brief since most of the functional aspects are described in Chapter 9 (p. 209).
The first group of variables are shared by the Tcl-less Expect library, the Expect extension, and the Expect program. In this chapter, only their use in the Expect extension and program will be described.
exp_disconnected is initially set to 0. It is set to 1 if ...