
On Wed, Sep 17, 2008 at 1:17 PM, Manlio Perillo
The Python tempfile module, as an example, implements a wrapper around mkstemp function that does exactly this, and the code is portable; on Windows it uses O_TEMPORARY_FILE flag, on POSIX systems the file is unlink-ed as soon as it is created (but note that the code is not signal safe - well, many functions in the Python standard library are not signal safe).
Something like:
withTempFile :: String -> ((FilePath, Handle) -> IO b) -> IO b withTempFile name action = do tmpdir <- getTemporaryDirectory bracket (openTempFile tmpdir name) (\(fp,h) -> hClose h >> removeFile fp) action
I don't know if this has the safety requirements you mean? -- Dougal Stanton dougal@dougalstanton.net // http://www.dougalstanton.net