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


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?  (Leído 14,091 veces)
BlerofonT

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?
« en: 5 Julio 2012, 13:21 »

Buenas a tod@s!!!

el problema que tengo es que estaba aprendiendo a usar la funcion SYSTEM la cual en principio no la encontre mucha dificultad. Pues bien, yo tengo Windows 7 asike mire en internet la lista de comandos para windows 7 y cree un programa en Dev-C++ que solo haria llamadas a SYSTEM (era inutil el programa, pero solo era para probar). Mi sorpresa fue cuando me di cuenta que con algunos comando funciona (como por ejemplo los tipicos "cls", "pause", "del"...)pero con otros no("cd.."y especialmente el que me molesta mas que no funcione es "exit"). ¿Alguien sabe porque al ejecutar system("exit") no m salgo del interprete de comandos y continua con el printf?¿porque no funciona el system("cd..")?

Aqui os dejo el codigo, aunque no creo q tenga mucho interes...

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main (void){
  5.    printf ("\nHola\n\n\n");
  6.    system ("dir");
  7.    system ("pause");
  8.    system ("del name.txt");
  9.    system ("pause");
  10.    system ("cd..");
  11.    system ("dir");
  12.    system ("pause");
  13.    system ("exit");/*NO SALE DEL INTERPRETE DE COMANDOS Y CONTINUA CON EL printf */
  14.    printf ("\nAdios\n\n");
  15.    system ("pause");
  16. }
  17.  
  18.  

Gracias


En línea

Saberuneko


Desconectado Desconectado

Mensajes: 2.090



Ver Perfil WWW
Re: Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?
« Respuesta #1 en: 5 Julio 2012, 15:30 »

El exit probablemente no te funcione porque tu programa no ha terminado, creo que para hacer eso en particular necesitarás que el programa finalice, en vez de usar el exit de system.

El pause realmente no lo necesitas, ya que puedes crear una pausa con un getchar();

Respecto a los comandos de directorio, ¿te sale algún tipo de error o hace algo? ¿o simplemente te los está ignorando?.

Un Saludo.


En línea

BlerofonT

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?
« Respuesta #2 en: 5 Julio 2012, 17:43 »

Pues te comento Saberuneko:

a) Respecto al system("pause"): tienes toda la razon y yo siempre uso el getchar() , pero estaba estudiando la funcion SYSTEM y solo lo hice para probar, pero yo recomiendo el getchar()

b) En el programilla que puse antes:
funcionan: el system("dir")(que me preguntabas), system("pause") y system("del name.txt")
no funcionan(les ignora completamente y NO dan error): el system("cd..")y el system("exit")

c) Alguien tiene alguna otra teoria acerca de porque me ignora el system("exit")???

Gracias a todos!!!
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?
« Respuesta #3 en: 5 Julio 2012, 20:00 »

Hola! por lo poco que se te puedo decir esto: el exit si esta funcionando, pero por que no termina el programa??? eso se debe a que al usar system abris otro proceso(ademas del que ya tenias), entonces al querer ejecutar system("exit"); estas cerrando ese proceso abierto y continua con el proceso del programa en C

Creo que mas o menos esta es la respuesta(bien a lo bestia). Saludos
En línea

Ahorrate una pregunta, lee el man
BlerofonT

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?
« Respuesta #4 en: 5 Julio 2012, 23:52 »

Hola Durasno!!!

Pues sigo sin entender lo del "exit"... Durasno puedes explicar mas concretamente que entiendes por proceso?? Y alguien mas sabe porque no funciona el el system("exit") o system("cd..")??
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?
« Respuesta #5 en: 6 Julio 2012, 00:58 »

Que no puedas visualizarlo no significa que no ande, sino tendrias que tener un error en el programa. Tal vez podria explicarte un poquito mejor el tema de procesos, pero de todos modos estamos entrando en un tema mas alla de lo que en si es la programacion en C.

Lo mejor es que esperes otra respuesta, ya que como te dije antes nose mucho sobre procesos y seguro no me vas a entender :S  (y ademas la respuesta que te di nose si es la correcta)


Saludos
En línea

Ahorrate una pregunta, lee el man
BlerofonT

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?
« Respuesta #6 en: 6 Julio 2012, 10:12 »

Que no puedas visualizarlo no significa que no ande, sino tendrias que tener un error en el programa. Tal vez podria explicarte un poquito mejor el tema de procesos, pero de todos modos estamos entrando en un tema mas alla de lo que en si es la programacion en C.

Lo mejor es que esperes otra respuesta, ya que como te dije antes nose mucho sobre procesos y seguro no me vas a entender :S  (y ademas la respuesta que te di nose si es la correcta)


Saludos

OK!! Gracias de todas formas. A ver si alguien se anima ;)
En línea

Saberuneko


Desconectado Desconectado

Mensajes: 2.090



Ver Perfil WWW
Re: Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?
« Respuesta #7 en: 10 Julio 2012, 11:57 »

Te aconsejo que no tires mucho de las funciones SYSTEM, que a parte de no ser compatibles con otros sistemas, suelen dar esta clase de problemas a menudo.

Te dejo aquí una alternativa más viable.

Funciones de Terminación:
http://www.zator.com/Cpp/E1_5_1.htm
« Última modificación: 10 Julio 2012, 11:59 por Saberuneko » En línea

HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no?
« Respuesta #8 en: 10 Julio 2012, 12:09 »

Buenas.

Yo creo, como te han indicado, que por cada llamada que haces a system, éste se ejecuta de manera independiente al resto de llamadas a system que puedas haces. Por eso aparentemente parece que no te funcionen algunos comandos, cuando realmente si están funcionando. ¿Has probado a concatenar varios comandos en una sola llamada? Por ejemplo:

Código
  1. system("dir & PAUSE & cd.. & dir & pause & cls & pause");

Verás como todos los comandos funcionan.

Con respecto a system("exit"), realmente lo que creo que hace es cerrar la consola que acabas de abrir mediante system (que ya de por si, se cierra al terminar los comandos que se le pasasen. De modo que creo que no tiene sentido, aunque es posible que me equivoque, utilizar exit). Por eso no se cierra tu programa.

Saludos.
En línea

- Nice to see you again -
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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