Linux "echo 1 > /dev/." in C programmieren

Gast #3115169
Lesenswert?

Hallo Experten!

Bin Anfänger, daher wahrscheinlich für Euch einfach zu lösen:

Ich schalte LEDs eines Boards mit "echo 1 > /dev/led1" oder "echo 0 > 
/dev/led1" an und aus.

Wie sieht das ganze aus, wenn ich es in C programmieren will?

fd=open("/dev/led1", WR_ONLY);
write(fd, 1, 1);

funktioniert leider nicht?

Danke schonmal.
Gast #3117445
Lesenswert?

A. K. schrieb:
> Faulpelze machen aus dem Dreizeiler open/write/close einen Einzeiler:
>    system("echo 1 > ...")

System ist böse, lernt man doch immer wieder ;-) ! Nebenbei ist das doch 
meher als Overkill. der Kernel muss eine kompletten Prozess ansetzen nur 
um eine "1" in ein Characater device zu schreiben.
Wer so Optimiert, der hat ein an der Waffel ehrlich. Wenn man das öfter 
in einen Programm braucht, pack es in eine Funktion oder ein marco.
#3117455
Lesenswert?

imonbln schrieb:
> System ist böse, lernt man doch immer wieder ;-) !
> Nebenbei ist das doch meher als Overkill.

Ich weiss auch nicht, ob ich das im produktiven Einsatz wirklich so 
machen würde. Aber eine Möglichkeit für quick-and-dirty wärs schon.

Natürlich ist das Overkill. Der Punkt ist nur: Ab wann spielt Overkill 
eine Rolle? Wenn ich im Programm intensives Bitbanging betreibe, dann 
schon. Wenn ich anfangs einmal irgendeine Einstellung vornehme, dann 
spielt dieser Aspekt hingegen keine Rolle.

Zum Thema Overkill habe ich ohnehin längst eine eher lockere Beziehung, 
da ich längst mehr in Perl als in C mache. Passt besser zu den Aufgaben, 
ist schneller fertiggestellt und in den allermeisten Fällen auch schnell 
genug.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren