Kapazität von Laufwerken ausgeben
-
Wie kann man mittels einer Funktion die Kapazität eines Laufwerks auslesen?
Habe unter /dev/... gesucht, ob man das irgendwie dort auslesen kann, habe aber nicht wirklich etwas gefunden. Konkret habe ich eine MMC-Karte von der ich das wissen will.
Danke!
-
das hat nichts direkt mit C++ zu tun, sondern mit Systemprogrammierung unter Linux/Windows/etc.
-
Ich frag ja deswegen hier nach, wie man das mit C++ machen kann.
-
Geht nicht. C++ kennt keine Laufwerke.
-
Dieser Thread wurde von Moderator/in volkard aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Unix kennt keine Laufwerke.
Du suchst vmtl. man: statvfs.
Schnell, dreckig, hackig, ungetestet und für große Volumes gänzlich ungeeignet:
#include <stdio.h> #include <sys/statvfs.h> int main(int argc, char* argv[]) { for (int i=1; i<argc; ++i) { struct statvfs buffer; int status = statvfs(argv[i], &buffer); if (!status) { unsigned long long free_space = (unsigned long long)buffer.f_bavail * (unsigned long long)buffer.f_frsize; printf("%s: %u megabytes available\n", argv[i], free_space/1000000); } } return 0; }
-
hallo dixidix
so habe ich es schon mal gelöst:
#include <sys/vfs.h> struct statfs st; memset (&st, 0, sizeof st); err = statfs (mountpoint, &st); if (!err) { /* free blocks avail to non-superuser */ *kbFree = (int)(st.f_bavail /1024 * st.f_bsize); *kbTotal = ( int)(st.f_blocks /1024 * st.f_bsize); }
mountpoint ist der Pfad im virtuellem Dateisystem
Gruß Frank