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?
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).
Y si haces un daemon y te lo quitas de encima?
daemon (1, 0);
¿?¿?¿?
Y si no, usa execve o similar...
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"
se puede hacer?
System("c:\ruta\p2.exe");
return 0;
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...
Gracias por las respuestas, ya he conseguido hacer lo que quería con un simple acceso directo de windows xD