elisp: Process Internals

 
 E.8.3 Process Internals
 -----------------------
 
 The fields of a process (for a complete list, see the definition of
 ‘struct Lisp_Process’ in ‘process.h’) include:
 
 ‘name’
      A string, the name of the process.
 
 ‘command’
      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.
 
 ‘filter’
      A function used to accept output from the process.
 
 ‘sentinel’
      A function called whenever the state of the process changes.
 
 ‘buffer’
      The associated buffer of the process.
 
 ‘pid’
      An integer, the operating system’s process ID.  Pseudo-processes
      such as network or serial connections use a value of 0.
 
 ‘childp’
      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
      ‘make-network-process’ or ‘make-serial-process’.
 
 ‘mark’
      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.
 
 ‘kill_without_query’
      If this is non-zero, killing Emacs while this process is still
      running does not ask for confirmation about killing the process.
 
 ‘raw_status’
      The raw process status, as returned by the ‘wait’ system call.
 
 ‘status’
      The process status, as ‘process-status’ should return it.
 
 ‘tick’
 ‘update_tick’
      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.
 
 ‘pty_flag’
      Non-‘nil’ if communication with the subprocess uses a pty; ‘nil’ if
      it uses a pipe.
 
 ‘infd’
      The file descriptor for input from the process.
 
 ‘outfd’
      The file descriptor for output to the process.
 
 ‘tty_name’
      The name of the terminal that the subprocess is using, or ‘nil’ if
      it is using pipes.
 
 ‘decode_coding_system’
      Coding-system for decoding the input from this process.
 
 ‘decoding_buf’
      A working buffer for decoding.
 
 ‘decoding_carryover’
      Size of carryover in decoding.
 
 ‘encode_coding_system’
      Coding-system for encoding the output to this process.
 
 ‘encoding_buf’
      A working buffer for encoding.
 
 ‘inherit_coding_system_flag’
      Flag to set ‘coding-system’ of the process buffer from the coding
      system used to decode process output.
 
 ‘type’
      Symbol indicating the type of process: ‘real’, ‘network’, ‘serial’.