POpen provides a convenient way of sending string input to a subprocess and reading output from it lazily.
popen :: FilePath -- Command -> [String] -- Arguments -> Maybe String -- Input -> IO (String, String, ProcessID) -- (stdout, stderr, pid)
popen cmd args inp
executes
cmd
with args
in a
forked process. If inp
is
Just str
then str in sent in a pipe to
the standard input of the process. The output and error
streams from the process are returned, together with the
process id.
popenEnvDir :: FilePath -- Command -> [String] -- Arguments -> Maybe String -- Input -> Maybe [(String, String)] -- Environment -> Maybe FilePath -- Working directory -> IO (String, String, ProcessID) -- (stdout, stderr, pid)
popenEnvDir cmd args inp env dir
like
popen
executes
cmd
with args
in a
forked process. If inp
is
Just str
then str in sent in a pipe to
the standard input of the process. If env
is Just pairs
, the command in executed in
the environment specified by pairs
,
instead of the current one. If dir
is
Just d
the command is executed in
directory d
instead of the current
directory. The output and error streams from the process
are returned, together with the process id.