Kawa, the Java-based Scheme system

Node:Processes, Next:Miscellaneous, Previous:Threads, Up:Extensions

### Processes

make-process command envp | Function

Creates a `<java.lang.Process>` object, using the specified command and envp. The command is converted to an array of Java strings (that is an object that has type `<java.lang.String[]>`. It can be a Scheme vector or list (whose elements should be Java strings or Scheme strings); a Java array of Java strings; or a Scheme string. In the latter case, the command is converted using `command-parse`. The envp is process environment; it should be either a Java array of Java strings, or the special `#!null` value.

system command | Function

Runs the specified command, and waits for it to finish. Returns the return code from the command. The return code is an integer, where 0 conventionally means successful completion. The command can be any of the types handled by `make-process`.

command-parse | Variable

The value of this variable should be a one-argument procedure. It is used to convert a command from a Scheme string to a Java array of the constituent "words". The default binding, on Unix-like systems, returns a new command to invoke `"/bin/sh" "-c"` concatenated with the command string; on non-Unix-systems, it is bound to `tokenize-string-to-string-array`.

tokenize-string-to-string-array command | Function

Uses a `java.util.StringTokenizer` to parse the command string into an array of words. This splits the command using spaces to delimit words; there is no special processing for quotes or other special characters. (This is the same as what `java.lang.Runtime.exec(String)` does.)