Valor de system()

Iniciado por Risketo, 15 Octubre 2012, 23:31 PM

0 Miembros y 1 Visitante están viendo este tema.

Risketo

Hola que tal, estaba haciendo un programa que hace una llamada a al sistema operativo y me devuelve un valor, hasta ahí todo bien pero después no se como usar el valor que me devuelve.

El código es el siguiente:

int main(){

char core0[]="sensors | grep Core\\ 0 | cut -c 18-19";
system(core0);

return 0;
}


Y me devuelve la temperatura del procesador del pc.
52

La pregunta es: como pasar lo que me devuelve system() a int para poder operar con ese valor?
Lo he intentado haciendo:
int x;
x=system(core0);

if ( x == 50 ) {printf ("cincuenta");}
if ( x == 51 ) {printf ("cincuenta y uno");}


Pero nada...

Muchas gracias de antemano.

The Swash


Risketo

#2
Gracias the swash no conocía popen(), ahora el programa hace lo que yo quería que hiciese.

FILE  *fp;
int x;

fp = popen("sensors | grep Core\\ 0 | cut -c 18-19","r");
fscanf(fp,"%d", &x);

printf ("%d", x);
if (x == 45){printf("  #45#  ");}
if (x == 46){printf("  #46#  ");}
if (x == 47){printf("  #47#  ");}
if (x == 48){printf("  #48#  ");}
if (x == 49){printf("  #49#  ");}
if (x == 50){printf("  #50#  ");}
if (x == 51){printf("  #51#  ");}
if (x == 52){printf("  #52#  ");}
if (x == 53){printf("  #53#  ");}
if (x == 54){printf("  #54#  ");}
if (x == 55){printf("  #55#  ");}
if (x == 56){printf("  #56#  ");}
if (x == 57){printf("  #57#  ");}
if (x == 58){printf("  #58#  ");}
if (x == 59){printf("  #59#  ");}
if (x == 60){printf("  #60#  ");}
if (x == 61){printf("  #61#  ");}
if (x == 62){printf("  #62#  ");}
if (x == 63){printf("  #63#  ");}

pclose(fp);



Lo único que no entiendo es que si al principio de todo hago una llamada al sistema para que haga un "sleep 1" no se ejecuta nada :S

Puntoinfinito

Como que no se ejecuta sleep 1 al principio de programa?
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

Foxy Rider

Totalmente innecesario hacerlo pidiendo los valores al comando sensors cuando tenés una misma librería que te dá esa función : http://www.lm-sensors.org/wiki/man/libsensors
libsensors es muy probable que esté, el comando sensors por otra parte ....

Es sentarse a leer la documentación de dicha librería.

Saludos.

Risketo

Muchas gracias, la libreria lm-sensors hace todo lo que yo queria  ;D