Внутреннее устройство процесса
Поля процесса (полный список см. в определении struct Lisp_Process в process.h) включают:
name-
Строка Lisp, имя процесса.
command-
Список, содержащий аргументы команд, используемые для запуска этого процесса. Для сетевого или последовательного процесса он равен
nil, если процесс работает, иt, если процесс остановлен. filter-
Функция Lisp, используемая для приема вывода из процесса.
sentinel-
Функция Lisp, вызываемая всякий раз, когда состояние процесса изменяется.
buffer-
Связанный буфер процесса.
pid-
Целое число, идентификатор процесса операционной системы (ID). Псевдопроцессы, такие как сетевые или последовательные соединения, используют значение 0.
childp-
Флаг,
t, если это действительно дочерний процесс. Для сетевого или последовательного соединения это список, основанный на аргументах дляmake-network-processилиmake-serial-process. mark-
Маркер, указывающий позицию конца последнего вывода из этого процесса, вставленного в буфер. Часто, но не всегда, это конец буфера.
kill_without_query-
Если это значение отличное от нуля, завершение Emacs, пока этот процесс все еще работает, не запрашивает подтверждения о завершении процесса.
raw_status-
Необработанное состояние процесса, как возвращается системным вызовом
wait. status-
Состояние процесса, как должно вернуть
process-status. Это символ Lisp, ячейка cons или список. tickupdate_tick-
Если эти два поля не равны, необходимо сообщить об изменении состояния процесса, либо запустив страж, либо вставив сообщение в буфер процесса.
pty_flag-
Не равно нулю, если общение с подпроцессом использует pty; равно нулю, если используется канал.
infd-
Дескриптор файла для ввода из процесса.
outfd-
Дескриптор файла для вывода в процесс.
tty_name-
Имя терминала, используемого подпроцессом, или
nil, если используются каналы. decode_coding_system-
Система кодирования для декодирования ввода из этого процесса.
decoding_buf-
Рабочий буфер для декодирования.
decoding_carryover-
Размер переноса при декодировании.
encode_coding_system-
Система кодирования для кодирования вывода в этот процесс.
encoding_buf-
Рабочий буфер для кодирования.
inherit_coding_system_flag-
Флаг для установки
coding-systemбуфера процесса из системы кодирования, используемой для декодирования вывода процесса. type-
Символ, указывающий тип процесса:
real,network,serial.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Process-Internals.html