elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Valor de system()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Valor de system()  (Leído 2,144 veces)
Risketo

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Valor de system()
« en: 15 Octubre 2012, 23:31 pm »

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:

Código
  1. int main(){
  2.  
  3. char core0[]="sensors | grep Core\\ 0 | cut -c 18-19";
  4. system(core0);
  5.  
  6. return 0;
  7. }

Y me devuelve la temperatura del procesador del pc.
Código:
52

La pregunta es: como pasar lo que me devuelve system() a int para poder operar con ese valor?
Lo he intentado haciendo:
Código
  1. int x;
  2. x=system(core0);
  3.  
  4. if ( x == 50 ) {printf ("cincuenta");}
  5. if ( x == 51 ) {printf ("cincuenta y uno");}

Pero nada...

Muchas gracias de antemano.


En línea

The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: Valor de system()
« Respuesta #1 en: 16 Octubre 2012, 00:26 am »

Hola,

Leyendo un poco creo que tu problema se resuelve utilizando:
popen:
http://linux.die.net/man/3/popen

y fscanf:
http://www.cplusplus.com/reference/clibrary/cstdio/fscanf/

Fuente:
http://www.dreamincode.net/forums/topic/146172-c-system-return-values/

Saludos.


En línea

Risketo

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Re: Valor de system()
« Respuesta #2 en: 16 Octubre 2012, 16:56 pm »

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

Código
  1. FILE  *fp;
  2. int x;
  3.  
  4. fp = popen("sensors | grep Core\\ 0 | cut -c 18-19","r");
  5. fscanf(fp,"%d", &x);
  6.  
  7. printf ("%d", x);
  8. if (x == 45){printf("  #45#  ");}
  9. if (x == 46){printf("  #46#  ");}
  10. if (x == 47){printf("  #47#  ");}
  11. if (x == 48){printf("  #48#  ");}
  12. if (x == 49){printf("  #49#  ");}
  13. if (x == 50){printf("  #50#  ");}
  14. if (x == 51){printf("  #51#  ");}
  15. if (x == 52){printf("  #52#  ");}
  16. if (x == 53){printf("  #53#  ");}
  17. if (x == 54){printf("  #54#  ");}
  18. if (x == 55){printf("  #55#  ");}
  19. if (x == 56){printf("  #56#  ");}
  20. if (x == 57){printf("  #57#  ");}
  21. if (x == 58){printf("  #58#  ");}
  22. if (x == 59){printf("  #59#  ");}
  23. if (x == 60){printf("  #60#  ");}
  24. if (x == 61){printf("  #61#  ");}
  25. if (x == 62){printf("  #62#  ");}
  26. if (x == 63){printf("  #63#  ");}
  27.  
  28. 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
« Última modificación: 16 Octubre 2012, 17:02 pm por Risketo » En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: Valor de system()
« Respuesta #3 en: 17 Octubre 2012, 00:22 am »

Como que no se ejecuta sleep 1 al principio de programa?
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



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


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: Valor de system()
« Respuesta #4 en: 17 Octubre 2012, 04:54 am »

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.
En línea

Risketo

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Re: Valor de system()
« Respuesta #5 en: 18 Octubre 2012, 17:11 pm »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines