Haskell:
一時ファイルの作成

How to: (方法)

import System.IO.Temp (withSystemTempFile)
import System.IO (hPutStrLn, hClose)

-- 一時ファイルを生成して使用するサンプル
main :: IO ()
main = withSystemTempFile "mytemp.txt" $ \filePath handle -> do
    -- ファイルに内容を書き込む
    hPutStrLn handle "一時ファイルの中身だよ"
    -- 必要な操作をここで実行
    -- ...
    putStrLn $ "一時ファイル作成:" ++ filePath
    -- withSystemTempFile はファイルを自動的に閉じる

出力サンプル:

一時ファイル作成:/tmp/mytemp.txt123456

Deep Dive (掘り下げ)

一時ファイルは古くから使われ、ディスクに一時的なデータを書いて使います。System.IO.Temp は安全に一時ファイルを取り扱うためのHaskellライブラリです。関数withSystemTempFile はファイルを自動的に削除するので、一時ファイルを掃除する手間が省けます。

他の方法としては openTempFilecreateTempDirectory などがあります。これらは一時ファイルやディレクトリをより細かくコントロールするために使われますが、後始末が必要になる場合があります。

実装の詳細では、withSystemTempFile や類似の関数は内部的に一意なファイルネームを生成し、アトミックにファイルを作成することで競合を避けます。安全性と一意性は一時ファイルを作る際の重要な特性です。

See Also (関連情報)