C++:
Skapa en temporär fil

Hur gör man:

I C++17 och framåt, använd std::filesystem för att skapa och hantera temporära filer. Här är ett exempel på hur man skapar en temporär fil och skriver till den.

#include <iostream>
#include <filesystem>
#include <fstream>

int main() {
    // Skapa en temporär fil i systemets temp-katalog
    std::filesystem::path temp_path = std::filesystem::temp_directory_path() / "min_temporara_fil.txt";
    
    // Använd std::ofstream för att skriva till filen
    std::ofstream temp_file(temp_path);
    temp_file << "Hej! Det här är några temporära data." << std::endl;
    
    // Stäng filen och säkra data
    temp_file.close();
    
    // Visa sökvägen till den temporära filen
    std::cout << "Temporär fil skapad på: " << temp_path << std::endl;

    // Radera den temporära filen (frivilligt)
    std::filesystem::remove(temp_path);

    return 0;
}

Sample output:

Temporär fil skapad på: /tmp/min_temporara_fil.txt

Djupdykning

För länge sedan skapades temporära filer manuellt, ofta med stor risk för kollisioner mellan filnamn. tmpnam och mkstemp är C-funktioner som fortfarande används men har sina säkerhetsbrister. C++17 introducerade std::filesystem som en modernare och säkrare lösning för filhantering. Alternativ till temporära filer inkluderar in-memory datastrukturer eller databaser. Implementeringsvise är det viktigt att se till att temporära filer tas bort, antingen via kod eller genom att använda OS-funktioner som automatiskt rensar temp-katalogen.

Se även