SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: elcucuyo en Martes 4 de Mayo de 2004, 05:41

Título: Ejecutar Programa Dentro De Otro
Publicado por: elcucuyo en Martes 4 de Mayo de 2004, 05:41
Hola
Estoy haciendo un trabajo en c de un programa"ejecutor de programas" (los cuáles he hecho de ante mano), que contenga un menú con los programas que se va ha ejecutar, una opción para salirse temporalmente del sistema y una función de salida que muestre las estísticas de cuantas veces se ha ejecutado un programa.
ya hice la opción para salirse temporalmente del sistema, el menú, y ya tengo una idea de como hacer la de salida.
la pregunta que tengo es ¿cómo llamo a programas que ya de ante mano he creado, para que se ejecuten mientras corro otro programa, cuando se selecciona una opción en el menú descrito anteriormente; y como hacerle para que despúes que se ejecuten regresen al programa "ejecutor".
Título: Re: Ejecutar Programa Dentro De Otro
Publicado por: -SB- en Martes 4 de Mayo de 2004, 17:04
Llamadas al sistema.

Si prorgamas en unix miratelas siguientes: fork, execvp, y wait.
fork para copiar el proceso, execvp para ejecutar el otro programa, y wait para esperarle.

Para mas informacion sobre el uso puedes poner
Código: Text
  1. man <funcion>
  2.  
en la consola.

Un saludo!
Título: Re: Ejecutar Programa Dentro De Otro
Publicado por: darko en Miércoles 5 de Mayo de 2004, 12:48
Si te sirve un poco, fork lo que hace es crear un proceso hijo. Y tanto padre como hijo siguen el mismo hilo de ejecucion , con la diferencia de que el padre tendra de pid el numero del pid de su hijo y el hijo tendra de pid 0. Como idea, piensa que con un switch puedes entrar al hijo o al padre...
El wait hace que el proceso padre espere a k el proceso hijo muera o se le envie una señal.
Espero que te haya servido de algo
Título: Re: Ejecutar Programa Dentro De Otro
Publicado por: Ruben3d en Miércoles 5 de Mayo de 2004, 16:33
Hola.

Como no mencionas nada sobre el sistema operativo te voy a poner la función a usar en Windows, ya que todo el mundo ha supuesto Unix.
CreateProcess (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp)

Un saludo.

Ruben3d