6

シェルから、次のようにシステムの LED をアクティブ化できます。

#echo 1 > /sys/class/leds/NAME:COLOR:LOCATION/brightness

Cプログラムからまったく同じことをしたいのですが、これを達成する方法の簡単な例を見つけることができませんでした?

4

3 に答える 3

9

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);
}
于 2012-05-05T02:02:33.113 に答える
3

このようなもの:

#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;
}
于 2012-05-05T02:03:14.950 に答える
2

私は自分の Linux パーティションで起動していませんが、次のようになると思います:

int f = open("/sys/class/leds/NAME:COLOR:LOCATION/brightness",O_WRONLY);
if (f != -1)
{
    write(f, "1", 1);
    close(f);
}
于 2012-05-05T02:03:36.990 に答える