A string, a list of strings, a simple-vector of strings, or
A type specifier.
A boolean. Not implemented on Microsoft Windows.
A shell type.
On non-Windows platforms the behavior of
open-pipe is analogous to that of
popen in the UNIX library. It creates a pipe to/from a subprocess and returns a stream. The stream can be read from or written to as appropriate.
command is interpreted as by call-system-showing-output.
direction is a keyword for the stream direction. The default value is
:input. Bidirectional (I/O) pipes may be created by passing
:io. See the example below. direction can also be
:none, which means no input and no output like call-system, but is useful when you want to use pipe-exit-status and pipe-kill-process. On Windows it is not possible to open a unidirectional pipe, so
:output both have the same effect as
When save-exit-status is non-nil, the status of the child process that
open-pipe creates is tracked, so pipe-exit-status and pipe-kill-process can be used reliably. The default value of save-exit-status is
element-type specifies the type of the stream as with open. The default value is
base-char. This argument is ignored on Microsoft Windows.
use-pty is useful on Unix-like systems if the sub-process behaves differently when running interactively and non-interactively. When use-pty is non-nil, the input and output of the sub-process are opened using PTY (Pseudo-pty). That means that the sub-process sees its input and output as if they come from an interactive terminal. The PTY also processes special characters such as Ctrl-C the same way that an ordinary TTY does.
use-pty is probably not useful on Microsoft Windows as there is no concept corresponding to the Unix behavior. If use-pty is non-nil then it uses the
CREATE_NEW_PROCESS_GROUP flag when creating the child, but it is not obvious when this might be useful.
stream supports mixed character and binary I/O in the same way as file streams constructed by open.
LispWorks User Guide and Reference Manual - 20 Sep 2017