Post by ^_^El problema q encuentro es q system solo me permite ejecutar 1 programa, y
la ejecucion del programa escrito por mi no finaliza hasta q no lo hace el
programa llamado por system, o sea, q si quiero q se ejecuten dos a la vez,
tiene q ejecutarse uno, cuando finalice sigue la ejecucion de mi programa y
llamaria al otro subprograma, y asi ...
No se si me he explicado bien.
Ah, comprendo. Bueno, C no contempla el manejo de procesos. Para ello
tienes que utilizar los servicios del sistema operativo. Donde mejor lo
van a saber es en los grupos dedicados al sistema operativo concreto en
el que lo quieras utilizar. Por ejemplo:
<URL: news:es.comp.os.ms-windows.programacion>
<URL: news:es.comp.os.linux.programacion>
<OT POSIX>
Si utilizas un sistema POSIX, te puedo decir por donde empezar a
buscar. Para hacer lo que quieres necesitas las llamadas fork() y
la familia exec().
fork() te creará un proceso hijo exactamente igual al original, y
exec() te sustituirá ese nuevo proceso por el comando que quieras
ejecutar:
<URL: http://www.opengroup.org/onlinepubs/007904975/functions/fork.html>
<URL: http://www.opengroup.org/onlinepubs/007904975/functions/exec.html>
Sería algo así:
/******************/
#include <stdlib.h>
#include <unistd.h>
/* ... */
pid_t hijo;
hijo = fork()
if (hijo > 0) {
if (execl("comando", "argumento1", "argumento2", NULL) < 0) {
perror("Error en execl");
exit(EXIT_FAILURE);
}
} else if (hijo < 0) {
perror("Error en execl");
exit(EXIT_FAILURE);
}
/******************/
</OT POSIX>
Un saludo.
--
Fernando Arbeiza <URL: mailto:***@ono.com>
Crea tu propio Linux: <URL: http://www.escomposlinux.org/lfs-es>