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
システム呼び出しが背後で使われています。