elisp: Processes

 
 36 Processes
 ************
 
 In the terminology of operating systems, a “process” is a space in which
 a program can execute.  Emacs runs in a process.  Emacs Lisp programs
 can invoke other programs in processes of their own.  These are called
 “subprocesses” or “child processes” of the Emacs process, which is their
 “parent process”.
 
    A subprocess of Emacs may be “synchronous” or “asynchronous”,
 depending on how it is created.  When you create a synchronous
 subprocess, the Lisp program waits for the subprocess to terminate
 before continuing execution.  When you create an asynchronous
 subprocess, it can run in parallel with the Lisp program.  This kind of
 subprocess is represented within Emacs by a Lisp object which is also
 called a “process”.  Lisp programs can use this object to communicate
 with the subprocess or to control it.  For example, you can send
 signals, obtain status information, receive output from the process, or
 send input to it.
 
    In addition to processes that run programs, Lisp programs can open
 connections of several types to devices or processes running on the same
 machine or on other machines.  The supported connection types are: TCP
 and UDP network connections, serial port connections, and pipe
 connections.  Each such connection is also represented by a process
 object.
 
  -- Function: processp object
      This function returns ‘t’ if OBJECT represents an Emacs process
      object, ‘nil’ otherwise.  The process object can represent a
      subprocess running a program or a connection of any supported type.
 
    In addition to subprocesses of the current Emacs session, you can
 also access other processes running on your machine.  SeeSystem
 Processes.
 

Menu