openpipe
openpipe |
Purpose
Start an external process for bidirectional communication.
Synopsis
procedure openpipe(cmd:string|text)
Argument
cmd
|
The command to be executed in the separate process
|
Example
The following example uses an external program
sort (we assume it writes a sorted copy of what it reads) to display a sorted list of the content of set
ToSort:
openpipe("sort") forall(i in ToSort) writeln(i) fclose(F_OUTPUT) while(not iseof) do readln(l) writeln(l) end-do fclose(F_INPUT)
Further information
1. Pipes required by this procedure are created using the
pipe driver of this module (see Section
Driver pipe). As a consequence, the string provided as argument must be suitable for the driver (
i.e. a program name followed by its options separated by spaces).
2. This procedure opens both an input and output streams that must be closed explicitly using
fclose. Note that the output stream must be closed first otherwise the program may lock up.
3. When Mosel is running in restricted mode (see Section
mosel command: restricted mode), this procedure behaves like the
system procedure.
Module