Een tijdelijk bestand aanmaken

C++:
Een tijdelijk bestand aanmaken

Hoe:

Hier is hoe je een tijdelijk bestand in huidige C++ creëert en gebruikt:

#include <cstdio>
#include <filesystem>
#include <iostream>

int main() {
    // Creëer een uniek tijdelijk bestand met behulp van de filesystem bibliotheek
    std::filesystem::path temp_path = std::filesystem::temp_directory_path() /= std::tmpnam(nullptr);

    // Open het tijdelijke bestand
    std::FILE* temp_file = std::fopen(temp_path.c_str(), "w+");
    if (!temp_file) {
        std::perror("Bestand openen mislukt");
        return EXIT_FAILURE;
    }

    // Schrijf er iets naar toe
    std::fputs("Hallo, Tijdelijke Wereld!\n", temp_file);

    // Vergeet niet altijd het bestand te sluiten
    std::fclose(temp_file);

    // Toon het pad naar ons tijdelijke bestand
    std::cout << "Tijdelijk bestand gecreëerd op: " << temp_path << std::endl;

    // Opruiming: verwijder het tijdelijke bestand
    std::filesystem::remove(temp_path);

    return EXIT_SUCCESS;
}

Voorbeelduitvoer (het daadwerkelijke pad kan variëren):

Tijdelijk bestand gecreëerd op: /tmp/abc123

Diepere Verkenning

Tijdelijke bestanden komen goed van pas in gevallen zoals het opslaan van de staat, het sorteren van grote datasets, of het afhandelen van output die niet hoeft te blijven bestaan. Historisch gezien werden temp bestanden gecreëerd in een algemene directory (zoals /tmp op Unix systemen) met een eenvoudige naamgevingsschema, met kans op botsingen. Modern C++ gebruikt de <filesystem> bibliotheek om dergelijke problemen te vermijden.

Alternatieven zijn het gebruik van RAM-gebaseerde tijdelijke opslag (zoals tmpfs in de meeste Unix-achtige systemen) of database blobs. Deze methoden houden de efemere gegevens in geheugen of beheerde systemen, wat de I/O overhead vermindert en de prestaties verbetert.

Wat betreft implementatie, onthoud dat:

  • Bestands-I/O kan falen, dus controleer altijd je bestandsoperaties op fouten.
  • Sluit altijd je bestanden om bronlekkage te voorkomen.
  • Ruim op: Verwijder je tijdelijke bestanden (hoewel het systeem dit vaak doet, het is een goede gewoonte).

Zie Ook