call-system-showing-output command &key current-directory prefix show-cmd output-stream wait shell-type kill-process-on-abort => status
A string, a list of strings, a simple-vector of strings, or
A string. Supported only on Microsoft Windows.
An output stream or
A string. Supported only on Unix/Linux/Mac OS X.
A generalized boolean.
The exit status of the invoked shell or process.
call-system-showing-output is an extension to
call-system which allows output to be redirected. On Unix/Linux/Mac OS X this means it can be redirected to places other than the shell process from which the LispWorks image was invoked.
call-system-showing-output therefore allows the user to, for example, invoke a shell command and redirect the output to the current Listener window.
The argument command is interpreted as by call-system. On Microsoft Windows there is one difference: when command is a list or vector and the executable (that is, the first element of the sequence command) in
call-system-showing-output is not a GUI application, LispWorks hides the first window, which is the console that the executable will normally open. Note that for a non-direct command (that is, a string) LispWorks always hides the first window (which is the console) in both call-system and
prefix is a prefix to be printed at the start of any output line. The default value is
show-cmd specifies whether or not the cmd invoked will be printed as well as the output for that command. If
t then cmd will be printed. The default value for show-cmd is
output-stream specifies where the output will be sent to. If output-stream is an output stream, the output is written to it. If output-stream is
t, the output is written to
*standard-output*. If output-stream is
nil, the output is collected as a string, and returned as a second value from
call-system-showing-output. If output-stream is
call-system-showing-output behaves like call-system. The default value is
If wait is true,
call-system-showing-output does not return until the process has exited. If
call-system-showing-output returns immediately and no output is shown. The default for wait is
shell-type is a string naming a UNIX shell. The default is
If kill-process-on-abort is true, then when
call-system-showing-output is aborted the process is killed. The default value of kill-process-on-abort is
call-system-showing-output returns the exit status of the shell invoked to execute the command on Unix/Linux/Mac OS X/FreeBSD, or the process created on Microsoft Windows.
CL-USER 1 > (sys:call-system-showing-output "pwd" :prefix "***")
CL-USER 2 > (sys:call-system-showing-output "pwd" :prefix "&&&" :show-cmd nil)
On Microsoft Windows:
CL-USER 223 > (sys:call-system-showing-output
"cmd /c type hello.txt"
***cmd /c type hello.txt
CL-USER 224 > (sys:call-system-showing-output
"cmd /c type hello.txt"
LispWorks User Guide and Reference Manual - 13 Feb 2015