E.9.3 Внутреннее устройство процессов

Поля процесса (полный список см. в определении struct Lisp_Process в process.h) включают:

name

Строка Lisp, имя процесса.

command

Список, содержащий аргументы команды, использованные для запуска этого процесса. Для сетевого или последовательного процесса это nil, если процесс запущен, или t, если процесс остановлен.

filter

Функция Lisp, используемая для приема вывода из процесса.

sentinel

Функция Lisp, вызываемая при изменении состояния процесса.

buffer

Ассоциированный буфер процесса.

pid

Целое число, идентификатор процесса операционной системы. Псевдопроцессы, такие как сетевые или последовательные соединения, используют значение 0.

childp

Флаг, t, если это действительно дочерний процесс. Для сетевого или последовательного соединения это plist, основанный на аргументах для make-network-process или make-serial-process.

mark

Маркер, указывающий положение конца последнего вывода из этого процесса, вставленного в буфер. Это часто, но не всегда конец буфера.

kill_without_query

Если это не ноль, завершение Emacs, пока этот процесс все еще запущен, не запрашивает подтверждение о завершении процесса.

raw_status

Сырое состояние процесса, возвращаемое системным вызовом wait.

status

Состояние процесса, которое должен вернуть process-status. Это символ Lisp, ячейка cons или список.

tick
update_tick

Если эти два поля не равны, необходимо сообщить об изменении состояния процесса, либо запустив sentinel, либо вставив сообщение в буфер процесса.

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.