Ho un'applicazione userspace che interagisce con un driver dello spazio del kernel in un ambiente Linux. Il driver, in questo caso, è un driver LED. In tipico * modo nix, il driver espone un file in /sys/class/leds/actled1:green/
chiamato value
. Quando il valore di value
supera una soglia, il LED si accende.
Quindi, la mia domanda è, qual è il modo migliore di aggiornare value
dallo spazio utente in C?
Il mio attuale approccio è quello di scrivere semplicemente sul file, con un percorso file hardcoded:
int value = 0;
FILE *fp;
/* update value here... */
fp = fopen("/sys/class/leds/actled1:green/value", "w");
if(fp != NULL) fprintf(fp, "%d", value);
fclose(fp);
C'è un modo migliore per farlo? Sembra che ci dovrebbe essere un POSIX C api standard per questo, forse uno che consente la ricerca del driver (in modo da non dover codificare il percorso del file).