std::experimental::filesystem::space
Von cppreference.com
< cpp | experimental | fs
| Definiert im Header <experimental/filesystem> |
||
| space_info space( const path& p ); space_info space( const path& p, error_code& ec ) noexcept; |
(Dateisystem-TS) | |
Ermittelt die Informationen über das Dateisystem, auf dem sich der Pfadname p befindet, wie durch POSIX statvfs.
Füllt ein Objekt vom Typ space_info und gibt es zurück, gesetzt aus den Mitgliedern der POSIX struct statvfs wie folgt:
- space_info.capacity wird gesetzt wie durch f_blocks * f_frsize.
- space_info.free wird auf f_bfree * f_frsize gesetzt.
- space_info.available wird auf f_bavail * f_frsize gesetzt.
- Jedes Mitglied, das nicht bestimmt werden konnte, wird auf static_cast<std::uintmax_t>(-1) gesetzt.
Die nicht werfende Überladung setzt alle Mitglieder im Fehlerfall auf static_cast<std::uintmax_t>(-1).
Inhalt |
[edit] Parameter
| p | - | Zu untersuchender Pfad |
| ec | - | Ausgabeparameter für die Fehlerberichterstattung in der nicht auslösenden Überladung |
[edit] Rückgabewert
Die Dateisysteminformationen (ein space_info Objekt).
[edit] Ausnahmen
Die Überladung, die keinen error_code& Parameter nimmt, wirft filesystem_error bei zugrundeliegenden Betriebssystem-API-Fehlern, konstruiert mit p als erstem Argument und dem Betriebssystem-Fehlercode als Fehlercode-Argument. std::bad_alloc kann geworfen werden, wenn die Speicherzuweisung fehlschlägt. Die Überladung, die einen error_code& Parameter nimmt, setzt diesen auf den Betriebssystem-API-Fehlercode, wenn ein Betriebssystem-API-Aufruf fehlschlägt, und führt ec.clear() aus, wenn keine Fehler auftreten. Diese Überladung hatnoexcept-Spezifikation:
noexcept
[edit] Hinweise
space_info.available kann kleiner sein als space_info.free.
[edit] Beispiel
Führen Sie diesen Code aus
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::space_info devi = fs::space("/dev/null"); fs::space_info tmpi = fs::space("/tmp"); std::cout << " Capacity Free Available\n" << "/dev: " << devi.capacity << " " << devi.free << " " << devi.available << '\n' << "/tmp: " << tmpi.capacity << ' ' << tmpi.free << ' ' << tmpi.available << '\n'; }
Mögliche Ausgabe
Capacity Free Available /dev: 4175114240 4175110144 4175110144 /tmp: 420651237376 411962273792 390570749952
[edit] Siehe auch
| Informationen über freien und verfügbaren Speicherplatz auf dem Dateisystem (Klasse) |