Der Linux-Kernel stellt Informationen zur aktuellen Umgebung mithilfe des sysfs-Dateisystems in/sys bereit. Ich interessiere mich für Informationen über Online-CPUs und deren Speicherhierarchie (Level 1 bis Level 3 Caches).Was ist der beste Weg, um den Inhalt von sysfs mit C/C++ zu verarbeiten?
Da all diese Informationen im Grunde Textdateien sind, könnte ich selbst einen Parser schreiben, aber ich bin gespannt, wie die Informationen in sysfs am besten verarbeitet werden. Zur Zeit fand ich zwei Alternativen:
libsysfs
und
libudev
Der Nachteil libsysfs
zu sein scheint, dass der Code jetzt fast 5 Jahre alt und so gut wie keine Dokumentation verfügbar ist, libudev
scheint aktiver, aber Dokumentation ist ziemlich selten. Es gab nur ein nützliches Tutorial, das ich gefunden habe auf libudev
- http://www.signal11.us/oss/udev/
Was ist der Stand der Technik Weg Inhalte von sysfs in C/C++ zu verarbeiten?
[Update]
Derzeit ist es nicht möglich ist, Daten in /sys/devices/system
auf die Tatsache zurückzuführen gespeichert zuzugreifen, dass die freiliegenden Informationen sind nicht reale Geräte. Die einzige Möglichkeit, auf diese Daten zuzugreifen, besteht darin, dies manuell zu tun.
Verwenden Sie Da Sie diese mit dem Stichwort 'Unix-programming', ist' eine Möglichkeit awk'? Das scheint der Weg des geringsten Widerstands zu sein, wenn es um das Parsen von Text geht. – SiegeX
Vor einiger Zeit war ich auch auf der Suche nach etwas, und am Ende gab ich auf und schrieb mein eigenes, als ich erkannte, dass ich in allen Dateien wirklich nur an einem bestimmten Teil der Informationen interessiert war, also der Overhead war es lohnt sich nicht ... – Nim