Autor
|
Tema: Duda funcion "SYSTEM", ¿porque funciona con unos comandos y con otros no? (Leído 17,186 veces)
|
BlerofonT
Desconectado
Mensajes: 16
|
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... #include <stdio.h> #include <stdlib.h> int main (void){ printf ("\nHola\n\n\n"); system ("dir"); system ("pause"); system ("del name.txt"); system ("pause"); system ("cd.."); system ("dir"); system ("pause"); system ("exit");/*NO SALE DEL INTERPRETE DE COMANDOS Y CONTINUA CON EL printf */ printf ("\nAdios\n\n"); system ("pause"); }
Gracias
|
|
|
En línea
|
|
|
|
Saberuneko
|
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
Mensajes: 16
|
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
Mensajes: 373
|
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
Mensajes: 16
|
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
Mensajes: 373
|
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
Mensajes: 16
|
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
|
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 am por Saberuneko »
|
En línea
|
|
|
|
HdM
Desconectado
Mensajes: 1.674
|
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: 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 -
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Cómo creo un "PostComment System" que se visualice en modo "TreeView"?...
.NET (C#, VB.NET, ASP)
|
Enja
|
0
|
2,727
|
18 Abril 2008, 13:31 pm
por Enja
|
|
|
System("pause"); de C en ASM[DUDA]
ASM
|
SLUGER
|
5
|
8,697
|
12 Junio 2009, 03:38 am
por SLUGER
|
|
|
Alternatica a conio.h y system("cls"); y system("clear"); ?
Programación C/C++
|
flacc
|
5
|
9,246
|
17 Diciembre 2010, 16:55 pm
por flacc
|
|
|
"Call" no funciona con textbox pero, sí, con "cualquiertexto"
« 1 2 »
Programación Visual Basic
|
usuario oculto
|
12
|
5,920
|
16 Julio 2011, 17:05 pm
por usuario oculto
|
|
|
[Duda] Como trabajar una variable en una función cuyos parametros son "Elipsis"
Programación C/C++
|
Zodiak98
|
1
|
2,868
|
10 Julio 2013, 03:15 am
por rir3760
|
|