在 shell 中,我可以像这样激活系统上的 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);
}