Ptys And Processes
The Expect library provides three functions to start new interactive processes. Each of them creates a new process so that its standard input, standard output, and standard error can be read and written by the current process.
exp_spawnl
is useful when the number of arguments is known at compile time. exp_spawnv
is useful when the number of arguments is not known at compile time. (The third function exp_popen
will be described later.) In both cases, the arguments are passed literally—no shell pattern matching is done and no redirection occurs. The shell is simply not involved. I occasionally will refer to these functions generically as the spawn functions.
exp_spawnl
and exp_spawnv
parallel those of the UNIX functions execlp
and execvp
respectively. The calling sequences are as follows:
int exp_spawnl(file, arg0 [, arg1, ..., argn] (char *)0); char *file; char *arg0, *arg1, ... *argn; int exp_spawnv(file,argv); char *file, *argv[ ];
In both functions, the file argument is a relative or absolute file specification. No special character processing occurs (such as ~
or *
expansion). exp_spawnl
and exp_spawnv
duplicate the shell’s actions in searching for an executable file from the list of directories associated with the PATH
environment variable.
The argv
parameter in exp_spawnv
is made available to the new process as the argv
parameter in main
. exp_spawnl
collects its remaining arguments and then massages them so that they also appear as the argv
parameter in main ...
Get Exploring Expect now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.