Haskell Hierarchical Libraries (base package)ContentsIndex
Portability portable
Stability provisional
Maintainer libraries@haskell.org
Executing an external command.
system :: String -> IO ExitCode
rawSystem :: FilePath -> [String] -> IO ExitCode
system :: String -> IO ExitCode

Computation system cmd returns the exit code produced when the operating system processes the command cmd.

This computation may fail with

  • PermissionDenied: The process has insufficient privileges to perform the operation.
  • ResourceExhausted: Insufficient resources are available to perform the operation.
  • UnsupportedOperation: The implementation does not support system calls.

On Windows, system is implemented using Windows's native system call, which ignores the SHELL environment variable, and always passes the command to the Windows command interpreter (CMD.EXE or COMMAND.COM), hence Unixy shell tricks will not work.

rawSystem :: FilePath -> [String] -> IO ExitCode

The computation rawSystem cmd args runs the operating system command whose file name is cmd, passing it the arguments args. It bypasses the shell, so that cmd should see precisely the argument strings args, with no funny escaping or shell meta-syntax expansion. (Unix users will recognise this behaviour as execvp, and indeed that's how it's implemented.) It will therefore behave more portably between operating systems than system.

The return codes are the same as for system.

Produced by Haddock version 0.6