E.9.3 Process Internals
The fields of a process (for a complete list, see the definition of
struct Lisp_Process in process.h) include:
- A Lisp string, the name of the process.
- A list containing the command arguments that were used to start this
process. For a network or serial process, it is
nil if the
process is running or
t if the process is stopped.
- A Lisp function used to accept output from the process.
- A Lisp function called whenever the state of the process changes.
- The associated buffer of the process.
- An integer, the operating system's process ID.
Pseudo-processes such as network or serial connections use a value of 0.
- A flag,
t if this is really a child process. For a network or
serial connection, it is a plist based on the arguments to
- A marker indicating the position of the end of the last output from this
process inserted into the buffer. This is often but not always the end
of the buffer.
- If this is non-zero, killing Emacs while this process is still running
does not ask for confirmation about killing the process.
- The raw process status, as returned by the
wait system call.
- The process status, as
process-status should return it. This
is a Lisp symbol, a cons cell, or a list.
- If these two fields are not equal, a change in the status of the process
needs to be reported, either by running the sentinel or by inserting a
message in the process buffer.
- Non-zero if communication with the subprocess uses a pty; zero if it
uses a pipe.
- The file descriptor for input from the process.
- The file descriptor for output to the process.
- The name of the terminal that the subprocess is using,
nil if it is using pipes.
- Coding-system for decoding the input from this process.
- A working buffer for decoding.
- Size of carryover in decoding.
- Coding-system for encoding the output to this process.
- A working buffer for encoding.
- Flag to set
coding-system of the process buffer from the
coding system used to decode process output.
- Symbol indicating the type of process: