Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: gxg en 2 Marzo 2011, 20:37 pm



Título: Programa que ejecutra otro programa
Publicado por: gxg en 2 Marzo 2011, 20:37 pm
Supongamos que tengo 2 programas p1, p2.

El  programa p1 lo que tiene que hacer al ejecutarse es ejecutar el programa p2 y terminar.

El programa p2 al ejecutarse lo que hace es borrar el programa p1.


el codigo de p1 es este

System("c:\ruta\p2.exe");


con esto lo que consigo es que se abra una consola y en ella se ejecute p2, por lo tanto no termina p1 y p2 no puede borrar a p1.


¿Como puedo ejecutar a p2 desde p1 sin que p1 se quede esperando a que p2 termine?


Título: Re: Programa que ejecutra otro programa
Publicado por: Edu en 2 Marzo 2011, 21:05 pm
Estas creando un melt.
Una vez q esta la intruccion para ejecutar el p2, la siguiente linea tiene q ser para terminar la aplicacion propia ( en el p1).


Título: Re: Programa que ejecutra otro programa
Publicado por: Garfield07 en 3 Marzo 2011, 18:59 pm
Y si haces un daemon y te lo quitas de encima?
Código
  1. daemon (1, 0);

¿?¿?¿?
Y si no, usa execve o similar...


Título: Re: Programa que ejecutra otro programa
Publicado por: Akai en 4 Marzo 2011, 23:04 pm
si estuvieses en un entorno linux, podrías iniciar el programa con el programa como "programa1", que hiciese lo que tuviese que hacer, y qye luego con un exec (o sus distintas variantes) cambiase su mapa de memoria (básicamente, se cambiase) por el "programa2"


Título: Re: Programa que ejecutra otro programa
Publicado por: anonimo12121 en 5 Marzo 2011, 10:33 am
se puede hacer?
System("c:\ruta\p2.exe");
return 0;



Título: Re: Programa que ejecutra otro programa
Publicado por: Garfield07 en 5 Marzo 2011, 17:35 pm
Eso último no continuaría el otro programa. Y si usas un fork y desde el proceso hijo haces lo que quieras? En Win32 hay formas diferentes al fork...


Título: Re: Programa que ejecutra otro programa
Publicado por: gxg en 6 Marzo 2011, 11:43 am
Gracias por las respuestas, ya he conseguido hacer lo que quería con un simple acceso directo de windows xD