41 Процессы

В терминологии операционных систем процесс — это пространство, в котором может выполняться программа. Emacs работает в процессе. Программы на Emacs Lisp могут вызывать другие программы в собственных процессах. Эти процессы называются подпроцессами или дочерними процессами процесса Emacs, который является их родительским процессом.

Подпроцесс Emacs может быть синхронным или асинхронным, в зависимости от того, как он создается. Когда вы создаете синхронный подпроцесс, программа Lisp ожидает завершения подпроцесса, прежде чем продолжить выполнение. Когда вы создаете асинхронный подпроцесс, он может выполняться параллельно с программой Lisp. Такой подпроцесс в Emacs представлен объектом Lisp, который также называется «процесс». Программы Lisp могут использовать этот объект для связи с подпроцессом или для управления им. Например, вы можете отправлять сигналы, получать информацию о состоянии, принимать вывод от процесса или отправлять ему ввод.

В дополнение к процессам, которые запускают программы, программы Lisp могут открывать соединения различных типов с устройствами или процессами, работающими на той же машине или на других машинах. Поддерживаемые типы соединений: сетевые соединения TCP и UDP, соединения с последовательным портом и соединения через конвейер (pipe). Каждое такое соединение также представляется объектом процесса.

Функция: processp object

Эта функция возвращает t, если object представляет объект процесса Emacs, и nil в противном случае. Объект процесса может представлять подпроцесс, запускающий программу, или соединение любого поддерживаемого типа.

В дополнение к подпроцессам текущей сессии Emacs вы также можете получить доступ к другим процессам, работающим на вашей машине. См. Доступ к другим процессам.