System.Cmd

| Haskell Hierarchical Libraries (base package) | Contents | Index
System.Cmd |
Portability | portable
Stability | provisional
Maintainer | libraries@haskell.org
Description
Executing an external command.
Synopsis
system :: String -> IO ExitCode
rawSystem :: FilePath -> [String] -> IO ExitCode
Documentation
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