Zugriff auf /sys/ im 2.6er Kernel mit C?
-
Hi,
wie kann ich die Einstellungen in /sys/ lesen und schreiben? Gibt es dafür spezielle befehle oder einfach nur mit fread / fwrite? Hab im Netz leider kein Beispiel dafür gefunden.
Gruß SkySurfer
-
mit fread/fwrite klappt das glaube ich nicht, da fread/fwrite gebuffertes I/O benutzen. Normalerweise macht man das mit man: open(2)/man: write(2)/man: read(2) und ggf. man: ioctl(2).
Dürfte dir vielleicht auch weiterhelfen: http://kernel.org/doc/Documentation/filesystems/sysfs.txt
-
rüdiger schrieb:
mit fread/fwrite klappt das glaube ich nicht, da fread/fwrite gebuffertes I/O benutzen.
Wieso sollte das nicht klappen?
-
ich versuche es grade so :
if((iFH = open("<etwas in /sys/ das ich mit cat ausgeben kann>", O_WRONLY)) == -1) { printf("Konnte nicht geoeffnet werden\n"); exit(1); } sagt er mir immer, das es nicht geöffnet werden konnte obwohl der Pfad mit cat einen Wert zurück liefert`.
Woran kann das liegen?
-
SkySurfer schrieb:
ich versuche es grade so :
if((iFH = open("<etwas in /sys/ das ich mit cat ausgeben kann>", O_WRONLY)) == -1) { printf("Konnte nicht geoeffnet werden\n"); exit(1); } sagt er mir immer, das es nicht geöffnet werden konnte obwohl der Pfad mit cat einen Wert zurück liefert`.
Woran kann das liegen?
Fehlende Schreibrechte?
-
Sollte ich eigentlich haben, ich führe es als root aus im moment
-
lass dir doch mal die Fehlermeldung ausgeben. open setzt ja errno. Benutz vielleicht mal man: perror(3)
-
Wenn Du sie mit cat öffnen kannst (ich nehme nicht an, dass Umleitungen wie ">" im Spiel sind), wieso versuchst Du dann im Programm sie schreibend zu öffnen? Ich denke das Lesen mit cat ist kein ausreichender Beweis, dass Du auch hineinschreiben darfst.