一時ファイルの作成

Rust:
一時ファイルの作成

How to:

Rustで一時ファイルを作成するには標準ライブラリのtempfileクレートを使うのが一般的です。以下は基本的な使い方です。

use tempfile::Builder;

fn create_temp_file() -> std::io::Result<()> {
    let mut temp_file = Builder::new().prefix("example").tempfile()?;
    writeln!(temp_file, "一時ファイルに書き込みます。")?;
    // 一時ファイルのパスを表示
    println!("{:?}", temp_file.path());
    Ok(())
}

fn main() {
    match create_temp_file() {
        Ok(_) => println!("一時ファイル作成成功!"),
        Err(e) => eprintln!("エラー発生: {}", e),
    }
}

サンプル出力:

一時ファイル作成成功!
"/tmp/exampleax4Q2z"

Deep Dive

かつては一時ファイルを自作するのが一般的でしたが、ユニークなファイル名の衝突を避けたり、セキュリティを保つためにはtempfileのようなライブラリが便利です。他の言語には似たようなライブラリがありますが、Rustではtempfileがよく使われています。

tempfileの背後には、ファイル名の競合を防ぐためにランダムなファイル名を生成するロジックがあります。また、オプションでプレフィックス、サフィックスやカスタムのディレクトリパスを設定することも可能です。

このライブラリはOSレベルでの安全な一時ファイル生成機能を利用することで、セキュリティも確保しています。例えばUNIX系システムではmkstempシステム呼び出しが背後で使われています。

See Also