-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Portable temporary file and directory support for Windows and Unix, based on code from Cabal -- -- The functions for creating temporary files and directories in the base -- library are quite limited. The unixutils package contains some good -- ones, but they aren't portable to Windows. This library just -- repackages the Cabal implementations of its own temporary file and -- folder functions so that you can use them without linking against -- Cabal or depending on it being installed. @package temporary @version 1.0 module System.IO.Temp -- | Use a temporary filename that doesn't already exist. withTempFile :: FilePath -> String -> (FilePath -> Handle -> IO a) -> IO a -- | Create and use a temporary directory. -- -- Creates a new temporary directory inside the given directory, making -- use of the template. The temp directory is deleted after use. For -- example: -- --
--   withTempDirectory "src" "sdist." $ \tmpDir -> do ...
--   
-- -- The tmpDir will be a new subdirectory of the given directory, -- e.g. src/sdist.342. withTempDirectory :: FilePath -> String -> (FilePath -> IO a) -> IO a -- | The function creates a temporary file in ReadWrite mode. The created -- file isn't deleted automatically, so you need to delete it manually. -- -- The file is creates with permissions such that only the current user -- can read/write it. -- -- With some exceptions (see below), the file will be created securely in -- the sense that an attacker should not be able to cause openTempFile to -- overwrite another file on the filesystem using your credentials, by -- putting symbolic links (on Unix) in the place where the temporary file -- is to be created. On Unix the O_CREAT and O_EXCL -- flags are used to prevent this attack, but note that O_EXCL -- is sometimes not supported on NFS filesystems, so if you rely on this -- behaviour it is best to use local filesystems only. openTempFile :: FilePath -> String -> IO (FilePath, Handle) -- | Like openTempFile, but opens the file in binary mode. See -- openBinaryFile for more comments. openBinaryTempFile :: FilePath -> String -> IO (FilePath, Handle) openNewBinaryFile :: FilePath -> String -> IO (FilePath, Handle) createTempDirectory :: FilePath -> String -> IO FilePath