Next: Synchronous Processes, Previous: Processes, Up: Processes [Contents][Index]
There are three functions that create a new subprocess in which to run
a program. One of them, start-process
, creates an asynchronous
process and returns a process object (see Asynchronous Processes).
The other two, call-process
and call-process-region
,
create a synchronous process and do not return a process object
(see Synchronous Processes).
Synchronous and asynchronous processes are explained in the following sections. Since the three functions are all called in a similar fashion, their common arguments are described here.
In all cases, the function’s program argument specifies the
program to be run. An error is signaled if the file is not found or
cannot be executed. If the file name is relative, the variable
exec-path
contains a list of directories to search. SXEmacs
initializes exec-path
when it starts up, based on the value of
the environment variable PATH
. The standard file name
constructs, ‘~’, ‘.’, and ‘..’, are interpreted as usual
in exec-path
, but environment variable substitutions
(‘$HOME’, etc.) are not recognized; use
substitute-in-file-name
to perform them (see File Name Expansion).
Each of the subprocess-creating functions has a buffer-or-name
argument which specifies where the standard output from the program will
go. If buffer-or-name is nil
, that says to discard the
output unless a filter function handles it. (See Filter Functions,
and Read and Print.) Normally, you should avoid having multiple
processes send output to the same buffer because their output would be
intermixed randomly.
All three of the subprocess-creating functions have a &rest
argument, args. The args must all be strings, and they are
supplied to program as separate command line arguments. Wildcard
characters and other shell constructs are not allowed in these strings,
since they are passed directly to the specified program.
Please note: The argument program contains only the name of the program; it may not contain any command-line arguments. You must use args to provide those.
If you want to use features of the shell, then invoke the shell directly
using, for example, program of "sh"
, and args of
"-c"
and "command line...".
The subprocess gets its current directory from the value of
default-directory
(see File Name Expansion).
The subprocess inherits its environment from SXEmacs; but you can
specify overrides for it with process-environment
. See System Environment.
The value of this variable is the name of a directory (a string) that
contains programs that come with SXEmacs, that are intended for SXEmacs
to invoke. The program wakeup
is an example of such a program;
the display-time
command uses it to get a reminder once per
minute.
The value of this variable is a list of directories to search for
programs to run in subprocesses. Each element is either the name of a
directory (i.e., a string), or nil
, which stands for the default
directory (which is the value of default-directory
).
The value of exec-path
is used by call-process
and
start-process
when the program argument is not an absolute
file name.
Next: Synchronous Processes, Previous: Processes, Up: Processes [Contents][Index]