Hola y disculpen mis preguntas de este dia es que este es el único foro c activo ;-). Esta vez estoy intentando capturar una salida del sistema en un orangepi.
Cuando digito" cat /sys/class/gpio/gpio1/value" en la consola la misma me devuelve un 0 o un 1.
sprintf(path, "/sys/class/gpio/gpio1/value"); en lenguaje c una forma de enviar el comando seria esta, mi pregunta es como capturo ese 1 o 0 que devuelve el sistema?
en general value es un archivo, puedes hacer como si leyeras un archivo normal
char buff;
FILE *file;
file = fopen("/sys/class/gpio/gpio1/value", "r");
if (file) {
fread(valor, 1, 1, file);
fclose(file);
}
int valor = 0;
if(buff == '0') {
valor = 0
}else{
valor = 1
}
hay librerías que simplifican esto como wiring pi , pero creo que es solo para raspberry
jajajajaj gracias amigo me ha iluminado la mente lo realize de esta forma.
int valor;
FILE* fichero = fopen("/sys/class/gpio/gpio1/value","rt");
fscanf (fichero, "%d", &valor);
printf("valor: %i \n", valor);
................saludos!
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
en el metodo fopen no conozco ese "rt" no se para que es la t... nunca lo he visto... y en general prefiero usar fread, porque es "mas seguro" (evita para aplicaciones, que hagan un buffer overflow o algo similar)