Dateisystem-Bibliothek
Die Dateisystembibliothek, ISO/IEC TS 18822:2015, stellt Einrichtungen für Operationen auf Dateisystemen und deren Komponenten bereit, wie z.B. Pfade, reguläre Dateien und Verzeichnisse.
Diese Bibliothek ist eine optionale technische Spezifikation und ist möglicherweise nicht verfügbar, wenn kein hierarchisches Dateisystem für die Implementierung zugänglich ist oder wenn sie nicht die erforderlichen Fähigkeiten bereitstellt. Einige Funktionen sind möglicherweise nicht verfügbar, wenn sie vom zugrundeliegenden Dateisystem nicht unterstützt werden (z.B. das FAT-Dateisystem hat keine Hardlinks, Softlinks und andere Funktionen).
Das Verhalten ist undefiniert, wenn Aufrufe von Funktionen in dieser Bibliothek ein Dateisystemrennen (file system race) verursachen, d.h., wenn mehrere Threads, Prozesse oder Computer den Zugriff und die Änderung desselben Objekts in einem Dateisystem miteinander verweben.
Diese Bibliothek basiert direkt auf boost.filesystem, das derzeit auf mehr Compilern und Plattformen verfügbar ist als diese experimentelle technische Spezifikation.
Inhalt |
[bearbeiten] Bibliotheksweite Definitionen
- Datei: Ein Dateisystemobjekt, das Daten enthält und in das geschrieben, aus dem gelesen oder beides werden kann. Dateien haben Namen, Attribute, eines davon ist der Dateityp.
- Verzeichnis: Eine Datei, die als Container für Verzeichniseinträge dient, die andere Dateien (von denen einige andere, verschachtelte Verzeichnisse sein können) identifizieren. Wenn über eine bestimmte Datei gesprochen wird, ist das Verzeichnis, in dem sie als Eintrag erscheint, ihr übergeordnetes Verzeichnis. Das übergeordnete Verzeichnis kann durch den relativen Pfadnamen ".." repräsentiert werden.
- Hardlink: Ein Verzeichniseintrag, der einen Namen mit einer vorhandenen Datei verknüpft. Wenn mehrere Hardlinks unterstützt werden, wird die Datei nach der Entfernung des letzten Hardlinks zu ihr gelöscht.
- Symbolischer Link: Ein Verzeichniseintrag, der einen Namen mit einem Pfad verknüpft, der existieren kann oder auch nicht.
- Reguläre Datei: Eine Datei, die keiner der anderen Dateitypen ist.
- Dateiname: Eine Zeichenkette, die einer Datei einen Namen gibt. Zulässige Zeichen, Groß-/Kleinschreibung, maximale Länge und die nicht zulässigen Namen sind implementierungsabhängig. Die Namen . (Punkt) und .. (Punkt-Punkt) haben auf Bibliotheksebene eine besondere Bedeutung.
- Pfad: Eine Sequenz von Elementen, die eine Datei identifiziert. Er beginnt mit einem optionalen Root-Namen (z.B. "C:" oder "//server"), gefolgt von einem optionalen Root-Verzeichnis (z.B. "/" unter Unix), gefolgt von einer Sequenz von null oder mehr Dateinamen (alle außer dem letzten müssen Verzeichnisse oder Links zu Verzeichnissen sein). Das native Format (z.B. welche Zeichen als Trennzeichen verwendet werden) und die Zeichenkodierung der String-Repräsentation eines Pfades (des Pfadnamens) sind implementierungsabhängig; diese Bibliothek bietet eine portable Darstellung von Pfaden.
- Absoluter Pfad: Ein Pfad, der den Speicherort einer Datei eindeutig identifiziert.
- Kanonischer Pfad: Ein absoluter Pfad, der keine Symlinks, "." oder ".." Elemente enthält.
- Relativer Pfad: Ein Pfad, der eine Datei relativ zu einem bestimmten Speicherort im Dateisystem identifiziert. Die speziellen Pfadnamen . (Punkt, "aktuelles Verzeichnis") und .. (Punkt-Punkt, "übergeordnetes Verzeichnis") sind relative Pfade.
[bearbeiten] Klassen
| repräsentiert einen Pfad (Klasse) | |
| eine Ausnahme, die bei Dateisystemfehlern ausgelöst wird (Klasse) | |
| ein Verzeichniseintrag (Klasse) | |
| ein Iterator für den Inhalt des Verzeichnisses (Klasse) | |
| ein Iterator für den Inhalt eines Verzeichnisses und seiner Unterverzeichnisse (Klasse) | |
| repräsentiert Dateityp und Berechtigungen (Klasse) | |
| Informationen über freien und verfügbaren Speicherplatz auf dem Dateisystem (Klasse) | |
| der Typ einer Datei (Aufzählung) | |
| identifiziert Dateisystemberechtigungen (Aufzählung) | |
| spezifiziert die Semantik von Kopiervorgängen (Aufzählung) | |
| Optionen für das Iterieren über Verzeichnisinhalte (Aufzählung) | |
| repräsentiert Datei-Zeitwerte (Typedef) |
[bearbeiten] Nicht-Member-Funktionen
| komponiert einen absoluten Pfad konvertiert einen Pfad in einen absoluten Pfad, der das OS-spezifische Verhalten repliziert (Funktion) | |
| komponiert einen kanonischen Pfad (Funktion) | |
| kopiert Dateien oder Verzeichnisse (Funktion) | |
| kopiert Dateiinhalte (Funktion) | |
| kopiert einen symbolischen Link (Funktion) | |
| erstellt neues Verzeichnis (Funktion) | |
| erstellt einen Hardlink (Funktion) | |
| erstellt einen symbolischen Link (Funktion) | |
| gibt das aktuelle Arbeitsverzeichnis zurück (Funktion) | |
| prüft, ob ein Pfad auf ein existierendes Dateisystemobjekt verweist (Funktion) | |
| prüft, ob zwei Pfade auf dasselbe Dateisystemobjekt verweisen (Funktion) | |
| gibt die Größe einer Datei zurück (Funktion) | |
| gibt die Anzahl der Hardlinks zurück, die auf die spezifische Datei verweisen (Funktion) | |
| liest oder setzt die Zeit der letzten Datenmodifikation (Funktion) | |
| modifiziert Dateizugriffsberechtigungen (Funktion) | |
| ermittelt das Ziel eines symbolischen Links (Funktion) | |
| entfernt eine Datei oder ein leeres Verzeichnis entfernt eine Datei oder ein Verzeichnis und dessen gesamten Inhalt rekursiv (Funktion) | |
| verschiebt oder benennt eine Datei oder ein Verzeichnis um (Funktion) | |
| ändert die Größe einer regulären Datei durch Abschneiden oder Auffüllen mit Nullen (Funktion) | |
| ermittelt den verfügbaren freien Speicherplatz auf dem Dateisystem (Funktion) | |
| ermittelt Dateiattribute ermittelt Dateiattribute, wobei das Ziel des symbolischen Links geprüft wird (Funktion) | |
| gibt ein Verzeichnis zurück, das für temporäre Dateien geeignet ist (Funktion) | |
Dateitypen | |
| prüft, ob der gegebene Pfad auf ein Blockgerät verweist (Funktion) | |
| prüft, ob der gegebene Pfad auf ein Zeichengerät verweist (Funktion) | |
| prüft, ob der gegebene Pfad auf ein Verzeichnis verweist (Funktion) | |
| prüft, ob der gegebene Pfad auf eine leere Datei oder ein leeres Verzeichnis verweist (Funktion) | |
| prüft, ob der gegebene Pfad auf eine benannte Pipe verweist (Funktion) | |
| prüft, ob das Argument auf eine andere Datei verweist (Funktion) | |
| prüft, ob das Argument auf eine reguläre Datei verweist (Funktion) | |
| prüft, ob das Argument auf einen benannten IPC-Socket verweist (Funktion) | |
| prüft, ob das Argument auf einen symbolischen Link verweist (Funktion) | |
| prüft, ob der Dateistatus bekannt ist (Funktion) | |
[bearbeiten] Siehe auch
| C++ Dokumentation für Dateisystembibliothek (C++17)
|