
Jules Bean wrote:
Maurício wrote:
Hi,
How can I call a program (like, for instance, 'grep text *') and get the standard output? All actions I found (executeFile, system) do not give me the output of the program.
http://haskell.org/ghc/docs/latest/html/libraries/process-1.0.0.0/System-Pro...
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
I was using the following: {- A small function for blindly running a process until it completes its output and then waiting for its exit code. We return both the output (excluding stderr) plus the exit code. -} getProcessOutput :: String -> IO (String, ExitCode) getProcessOutput command = -- Create the process do (_pIn, pOut, pErr, handle) <- runInteractiveCommand command -- Wait for the process to finish and store its exit code exitCode <- waitForProcess handle -- Get the standard output. output <- hGetContents pOut -- return both the output and the exit code. return (output, exitCode) You'll need the following imports: import System.IO ( hGetContents ) import System.Process ( runInteractiveCommand , waitForProcess ) import System.Exit ( ExitCode ( .. ) ) regards allan