| Haskell Hierarchical Libraries (base package) | Source code | Contents | Index

System.Environment |

Portability | portable
Stability | provisional
Maintainer | libraries@haskell.org

Description
Miscellaneous information about the system environment.
Synopsis

getArgs :: IO [String]
getProgName :: IO String
getEnv :: String -> IO String
withArgs :: [String] -> IO a -> IO a
withProgName :: String -> IO a -> IO a
getEnvironment :: IO [(String, String)]

Documentation
getArgs :: IO [String]
Computation `getArgs` returns a list of the program's command line arguments (not including the program name).
getProgName :: IO String
Computation `getProgName` returns the name of the program as it was invoked. However, this is hard-to-impossible to implement on some non-Unix OSes, so instead, for maximum portability, we just return the leafname of the program as invoked. Even then there are some differences between platforms: on Windows, for example, a program invoked as foo is probably really `FOO.EXE`, and that is what `getProgName` will return.
getEnv :: String -> IO String
Computation `getEnv` `var` returns the value of the environment variable `var`. This computation may fail with:

- `isDoesNotExistError` if the environment variable does not exist.

withArgs :: [String] -> IO a -> IO a
`withArgs` `args act` - while executing action `act`, have `getArgs` return `args`.
withProgName :: String -> IO a -> IO a
`withProgName` `name act` - while executing action `act`, have `getProgName` return `name`.
getEnvironment :: IO [(String, String)]
`getEnvironment` retrieves the entire environment as a list of `(key,value)` pairs. If an environment entry does not contain an `'='` character, the `key` is the whole entry and the `value` is the empty string.
Produced by Haddock version 0.8