[Haskell-cafe] about openTempFile

Manlio Perillo manlio_perillo at libero.it
Wed Sep 17 09:42:12 EDT 2008


Dougal Stanton ha scritto:
> On Wed, Sep 17, 2008 at 1:17 PM, Manlio Perillo
> <manlio_perillo at libero.it> wrote:
>> 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?
> 

Yes, this is the ideal solution for Haskell.

But since GHC does not implement such a function, I was curious to know 
why it don't even implement a function that make sure the temporary file 
is removed.

> 


Thanks  Manlio Perillo


More information about the Haskell-Cafe mailing list