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 Unix/Linux/Mac OS X the behavior of
is analogous to that of
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.
is a string then it is passed to the shell as the command to run without any arguments. If
is a list, then its 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 in C, and so on). If
is a simple-vector of strings, the element at index 0 is the command to run and the other elements are the complete set of arguments seen by the command (that is, element 1 becomes argv in C, and so on). If
, then the shell is run.
is a keyword for the stream direction. The default value is
. Bidirectional (I/O) pipes may be created by pasing
. See the example below. This argument is ignored on Microsoft Windows.
specifies the type of the stream as with open. The default value is
. This argument is ignored on Microsoft Windows.
specifies the type of shell to run. On UNIX/Linux/Mac OS X/FreeBSD the default value is
. On Microsoft Windows the default value is
. Note that on Windows ME/98/95 you will need to pass
stream supports mixed character and binary I/O in the same way as file streams constructed by open.