call-system
allows executables and DOS or Unix shell commands to be called from Lisp code as a separate OS process. The output goes to standard output, as the operating system sees it. (This normally means *terminal-io*
in LispWorks.)
If command is a string then it is passed to the shell as the command to run, using the -c
option, without any other arguments. The type of shell to run is determined by shell-type as described below. Note that for typical Unix shells, the string command may contain multiple commands separated by ;
(semicolon).
If command is a list then it becomes the argv of a command to run directly, without invoking a shell. The first element is the command to run directly and the other elements are passed as arguments on the command line (that is, element 0 has its name in argv[0] in C, and so on).
If command is a simple vector of strings, the element at index 0 is the command to run directly, without invoking a shell. The other elements are the complete set of arguments seen by the command (that is, element 1 becomes argv[0] in C, and so on).
If command is nil
, then the shell is run.
On Microsoft Windows, if command is a string, LispWorks hides the first window of the execution of the command, because that is the console that cmd.exe
starts in a DOS window. If the command itself is a console application, you may want to see the console. In this case run the command as a direct command. To do this, pass a list or a vector as described above. Conversely, if you run a console application and do not want to see the console, pass the command as a string.
On Microsoft Windows current-directory is the lpCurrentDirectory argument passed to CreateProcess
. If this is not supplied, the pathname-location of the current-pathname is passed.
If wait is true, call-system
does not return until the process has exited. The default for wait is t
.
On non-Windows platforms, if shell-type is a string it specifies the shell. If shell-type is nil
(the default) then the Bourne shell, /bin/sh
, is used. The C shell may be obtained by passing "/bin/csh"
.
On supported versions of Microsoft Windows if shell-type is nil
then cmd.exe
is used.
call-system
returns the exit status of the process it created. Additionally on Unix-like systems if the process was terminated by a signal then call-system
returns the number of that signal. For a discussion of these return values see Interpreting the exit status.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4