std::remove
| Definiert in Header <cstdio> |
||
| int remove( const char* pathname ); |
||
Löscht die Datei, die durch die Zeichenkette identifiziert wird, auf die pathname verweist.
Wenn die Datei derzeit von einem Prozess geöffnet ist, ist das Verhalten dieser Funktion implementierungsabhängig. POSIX-Systeme entlinken den Dateinamen (Verzeichniseintrag), aber der vom Dateisystem belegte Speicherplatz wird nicht freigegeben, solange die Datei in irgendeinem Prozess geöffnet ist und solange andere Hardlinks zur Datei existieren. Windows erlaubt in solchen Fällen nicht das Löschen der Datei.
Inhalt |
[bearbeiten] Parameter
| pathname | - | Zeiger auf eine nullterminierte Zeichenkette, die den Pfad zur zu löschenden Datei enthält |
[bearbeiten] Rückgabewert
0 bei Erfolg oder ein von Null verschiedener Wert bei einem Fehler.
[bearbeiten] Hinweise
POSIX spezifiziert viele zusätzliche Details zum Verhalten dieser Funktion.
Die Standardbibliothek definiert auch eine Funktionenschablone std::remove, die ein Iteratorenpaar und einen Wert annimmt; diese Überladung ist einer der Standard-Algorithmen.
[bearbeiten] Beispiel
#include <cstdio> #include <cstdlib> #include <fstream> #include <iostream> int main() { // create a file, check success using operator! of temporary stream object if (!std::ofstream("file1.txt").put('a')) { std::perror("Error creating file1.txt"); return EXIT_FAILURE; } std::cout << std::ifstream("file1.txt").rdbuf() << '\n'; // print file std::remove("file1.txt"); // delete file if (!std::ifstream{"file1.txt"}) // uses operator! of temporary stream object { std::perror("Error opening deleted file"); return EXIT_FAILURE; } return EXIT_SUCCESS; }
Mögliche Ausgabe
a Error opening deleted file: No such file or directory
[bearbeiten] Siehe auch
| (C++17)(C++17) |
entfernt eine Datei oder ein leeres Verzeichnis entfernt eine Datei oder ein Verzeichnis und dessen gesamten Inhalt rekursiv (Funktion) |
| benennt eine Datei um (function) | |
| C-Dokumentation für remove
| |