シェルから、次のようにシステムの LED をアクティブ化できます。
#echo 1 > /sys/class/leds/NAME:COLOR:LOCATION/brightness
Cプログラムからまったく同じことをしたいのですが、これを達成する方法の簡単な例を見つけることができませんでした?
sysfs ノードをファイルのように開き、「1」を書き込み、再度閉じます。
例えば:
#include <stdio.h>
#include <fcntl.h>
void enable_led() {
int fd;
char d = '1';
fd = open("sys/class/leds/NAME:COLOR:LOCATION/brightness", O_WRONLY);
write (fd, &d, 1);
close(fd);
}
このようなもの:
#include <stdio.h>
int main(int argc, char **argv)
{
FILE* f = fopen("/sys/class/leds/NAME:COLOR:LOCATION/brightness", "w");
if (f == NULL) {
fprintf(stderr, "Unable to open path for writing\n");
return 1;
}
fprintf(f, "1\n");
fclose(f);
return 0;
}
私は自分の Linux パーティションで起動していませんが、次のようになると思います:
int f = open("/sys/class/leds/NAME:COLOR:LOCATION/brightness",O_WRONLY);
if (f != -1)
{
write(f, "1", 1);
close(f);
}