Dudas sobre system()

Iniciado por eleon, 4 Mayo 2012, 16:49 PM

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

eleon

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.

durasno

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
Ahorrate una pregunta, lee el man

Queta

No existe ningún estándar, el comportamiento y el valor de retorno de la función system dependen del sistema operativo.
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

neveldine

Si lo necesitas siempre puedes hacer una compilación condicional


#ifdef WIN32
system("cls");
#else
system("clear");
#endif

STANHMAL

Cita de: eleon en  4 Mayo 2012, 16:49 PM
... 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 (cpp) [Seleccionar]

#ifdef WIN32
        #define LIMPIA_PANTALLA system("cls");
#else
        #define LIMPIA_PANTALLA system("clear");
#endif

int main(void){
    LIMPIA_PANTALLA
    return 0;
}


$4!u2
Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red

botella

Cita de: neveldine en  5 Mayo 2012, 01:48 AM
Si lo necesitas siempre puedes hacer una compilación condicional


#ifdef WIN32
system("cls");
#else
system("clear");
#endif


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

saludos.

STANHMAL

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
Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red