C++:
Erstellung einer temporären Datei
How to:
#include <cstdio> // Für tmpfile() und fclose()
#include <fstream> // Für std::ofstream
#include <iostream> // Für std::cout
#include <filesystem> // Für std::filesystem::temp_directory_path()
int main() {
// Methode 1: tmpfile()
FILE* tempPtr = tmpfile();
if (!tempPtr) {
std::cerr << "Temporäres File konnte nicht erstellt werden.\n";
return 1;
}
// Nutzen Sie das File ...
// Das File wird automatisch gelöscht, wenn es geschlossen wird
fclose(tempPtr);
// Methode 2: C++ Dateistream
std::ofstream tempFile(std::filesystem::temp_directory_path() / "meinTempFile.txt");
if (!tempFile.is_open()) {
std::cerr << "Temporäres File konnte nicht erstellt werden.\n";
return 1;
}
// Nutzen Sie das File ...
// Schließen und manuell löschen
tempFile.close();
std::filesystem::remove(std::filesystem::temp_directory_path() / "meinTempFile.txt");
std::cout << "Temporäre Files wurden erstellt und gelöscht.\n";
return 0;
}
Ausgabe:
Temporäre Files wurden erstellt und gelöscht.
Deep Dive:
Frühe Betriebssysteme boten einfache Methoden, temporäre Files zu handhaben. Heutige C++-Standards nutzen Funktionen wie tmpfile()
oder Streams, um Portabilität und Sicherheit zu gewährleisten. Alternativen wie Named Temporary Files erlauben mehr Kontrolle, bergen aber Risiken hinsichtlich Kollisionen und Sicherheit. Bei der Implementierung sollten Entwickler sorgfältig überlegen, ob die Daten sensibel sind und wie sie das File löschen, da temporäre Files ein Sicherheitsrisiko darstellen können.
See Also:
- CPP Reference für
tmpfile()
: https://en.cppreference.com/w/c/io/tmpfile - CPP Reference für
std::filesystem
: https://en.cppreference.com/w/cpp/filesystem - Eine gute Diskussion über die Sicherheit von temporären Files: https://owasp.org/www-community/vulnerabilities/Insecure_Temporary_File