41 进程

在操作系统术语中,进程(process) 是程序可以在其中执行的空间。Emacs 运行在一个进程内。Emacs Lisp 程序可以在自身的进程中调用其他程序。这些程序被称为 Emacs 进程的 子进程(subprocesses)子进程(child processes),而 Emacs 进程则是它们的 父进程(parent process)

Emacs 的子进程可以是 同步(synchronous)异步(asynchronous) 的,具体取决于其创建方式。创建同步子进程时,Lisp 程序会等待子进程终止后再继续执行。创建异步子进程时,它可以与 Lisp 程序并行运行。这类子进程在 Emacs 内部由一个 Lisp 对象表示,该对象也被称为 “进程(process)”。Lisp 程序可以使用该对象与子进程通信或对其进行控制。例如,你可以发送信号、获取状态信息、接收进程输出或向其发送输入。

除了运行程序的进程外,Lisp 程序还可以与同一台或其他机器上的设备或进程建立多种类型的连接。支持的连接类型包括:TCP 与 UDP 网络连接、串口连接以及管道连接。每一种此类连接同样由一个进程对象表示。

Function: processp object

如果 object 表示一个 Emacs 进程对象,此函数返回 t,否则返回 nil。该进程对象可以表示运行程序的子进程或任意支持类型的连接。

除了当前 Emacs 会话的子进程外,你还可以访问运行在本机上的其他进程。See 访问其他进程