Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: eleon en 4 Mayo 2012, 16:49 pm



Título: Dudas sobre system()
Publicado por: eleon en 4 Mayo 2012, 16:49 pm
Buenas:

Es de todos sabido que la instrucción "system()" produce una llamada al sistema para que realice la acción requerida, hasta ahi bien. Pero también tiene el inconveniente de que el parámetro que pasamos depende del sistema operativo, esto es, "system("cls");" solo funciona en Windows mientras que "system("clear");" solo funciona en las distribuciones de Ubuntu.

¿Existe algún "estándar" para la instrucción "system()" que funcione en varios SO a la vez?.

Y sino, ¿me podríais indicar alguna página dónde comprobar todas los parámetros que podemos pasarle a "system()" en windows y ubuntu?.

Gracias. Saludos.


Título: Re: Dudas sobre system()
Publicado por: durasno en 4 Mayo 2012, 21:00 pm
Hola! debe haber algun comando o dos q se pueden ejecutar en ambos SO, como cd y mkdir(sino me equivoco)

windows
http://www.taringa.net/posts/info/1018661/comandos-de-ms-dos.html

Linux
http://www.esdebian.org/wiki/lista-comandos-gnulinux-i#seccion2


Saludos


Título: Re: Dudas sobre system()
Publicado por: Queta en 5 Mayo 2012, 00:46 am
No existe ningún estándar, el comportamiento y el valor de retorno de la función system dependen del sistema operativo.


Título: Re: Dudas sobre system()
Publicado por: neveldine en 5 Mayo 2012, 01:48 am
Si lo necesitas siempre puedes hacer una compilación condicional

Código
  1. #ifdef WIN32
  2. system("cls");
  3. #else
  4. system("clear");
  5. #endif
  6.  


Título: Re: Dudas sobre system()
Publicado por: STANHMAL en 5 Mayo 2012, 02:10 am
... solo funciona en las distribuciones de Ubuntu.

Corrección, Distribuciones GNU/Linux.

podes hacer como te lo mencionaron arriba, así es como lo uso yo:

Código
  1. #ifdef WIN32
  2.        #define LIMPIA_PANTALLA system("cls");
  3. #else
  4.        #define LIMPIA_PANTALLA system("clear");
  5. #endif
  6.  
  7. int main(void){
  8.    LIMPIA_PANTALLA
  9.    return 0;
  10. }
  11.  

$4!u2


Título: Re: Dudas sobre system()
Publicado por: botella en 9 Mayo 2012, 08:26 am
Si lo necesitas siempre puedes hacer una compilación condicional

Código
  1. #ifdef WIN32
  2. system("cls");
  3. #else
  4. system("clear");
  5. #endif
  6.  

Neveldine, eso lo podés usar dentro del main o una función, o va en la cabecera?.

saludos.


Título: Re: Dudas sobre system()
Publicado por: STANHMAL en 10 Mayo 2012, 03:30 am
Eso va en la cabecera, o bueno así como esta es posible que valla en el main, ya que no se define una variable para hacer más simple el llamado.


$4!u2