readProcess forks an external process, reads its standard
output strictly, blocking until the process terminates, and returns
the output string. The external process inherits the standard error.
If an asynchronous exception is thrown to the thread executing
readProcess, the forked process will be terminated and
readProcess will wait (block) until the process has been
terminated.
Output is returned strictly, so this is not suitable for launching
processes that require interaction over the standard file streams.
This function throws an
IOError if the process
ExitCode
is anything other than
ExitSuccess. If instead you want to get
the
ExitCode then use
readProcessWithExitCode.
Users of this function should compile with
-threaded if they
want other Haskell threads to keep running while waiting on the result
of readProcess.
> readProcess "date" [] []
"Thu Feb 7 10:03:39 PST 2008\n"
The arguments are:
- The command to run, which must be in the $PATH, or an absolute or
relative path
- A list of separate command line arguments to the program
- A string to pass on standard input to the forked process.