Ich habe ein Flash-Laufwerk Gerät (/ dev/sda1) montiert auf/mnt auf einem eingebetteten Linux-System (Kernel 2.6.23). Wie verwende ich die Größe des Laufwerks?Wie finde ich die Größe des montierten USB-Sticks in C?
Antwort
Unter Linux, wenn Sie über die Portabilität nicht besorgt sind (C nicht über die Laufwerke nicht kennt, so dass jeder solche spezifischen Code portierbar sein), verwenden statfs()
:
struct statfs fsb;
if(statfs("/mnt", &fsb) == 0)
printf("device has %ld blocks, each %ld bytes\n", fsb.f_blocks, fsb.f_bsize);
Wenn Sie kein Problem mit externen Tools haben, exec dies:
df -h | grep -i /dev/sda1
mit popen und analysieren die resultierende Linie mit strtok.
Ich versuche, so etwas zu vermeiden. Die Anwendung läuft auf einer eingebetteten Plattform und würde zu viel Ressourcen benötigen, um das oben genannte zu tun. – Andrew
'-h' ist hier wahrscheinlich unnötig, da die Eingabe vom Programm gelesen wird. '-i' ist auch wegen der Groß- und Kleinschreibung überflüssig. Abgesehen davon - eine gute LSB-konforme (d. H. Tragbare) Lösung. –
lesen und analysieren eine Zahl in sysfs-Eintrag des Geräts. In Ihrem Fall
- Voll Gerät (alle Partitionen und Partitionstabelle):
/sys/block/sda/size
- Logical Partition auf diesem Gerät:
/sys/block/sda/sda1/size
Das Gerät muss nicht noch montiert werden.
- 1. Wie finde ich die Größe einer Struktur?
- 2. C# Wie finde ich die Größe eines Referenztyps?
- 3. Wie finde ich die Größe der Pooling-Layer in Caffe?
- 4. Wie finde ich die Größe der Tabelle in SQL?
- 5. Wie finde ich die Größe eines Arrays in postgresql
- 6. Wie finde ich die Größe des kleinsten und größten Fachs in MATLAB?
- 7. Wie finde ich die Länge des Literal-Arrays?
- 8. Wie finde ich die Größe eines std :: bitset zur Kompilierzeit
- 9. Wie finde ich die Größe der statischen Zuordnungen von binären?
- 10. Wie kann ich die Größe des Recaptchas in Greasemonkey ändern?
- 11. Wie finde ich die Kategorie des ausgewählten Elements in AutoComplete?
- 12. Wie finde ich die Assembly Version des aufrufenden Programms?
- 13. Wie finde ich einen Breakpoint in C#?
- 14. Wie berechne ich die Größe des Verzeichnisses auf FTP?
- 15. Wie kann ich die Größe des Navigators in highstock.js begrenzen?
- 16. Wie finde ich die Hintergrundfarbe von DataGridViewCell in C#?
- 17. Wie finde ich die Xml-Dokumentgröße in marklogic
- 18. Größe des Zeichenfeldes und die Größe des Zeichenzeigers
- 19. C++ dynamische Größe des Arrays
- 20. die Größe des Layouts
- 21. Wie finde ich die natürliche Größe/Größe einer Flash SWF-Datei?
- 22. Wie erzwinge ich die Größe dieser TTK-Apps, wenn ich die Größe des Fensters ändere?
- 23. Wie finde ich den Speicherort des Scratchpuffers?
- 24. Wo finde ich die Größe der SQL Server-Datentypen
- 25. Wie finde ich die globale Position des Textcursors?
- 26. Wie finde ich den Standort des Benutzers?
- 27. Wie finde ich die IP-Adresse des aktiven AirPlay-Geräts?
- 28. Wie finde ich die UUID des seriellen Bluetooth-Geräts?
- 29. Wie verfolge ich die Größe des Ergebnissatzes mit Hibernate?
- 30. Wo finde ich die C# -Sprachspezifikation 6.0?
Das obige funktioniert, wenn der Pfad zu statfs ist "/ mnt" – Andrew