Programa multiplica.c:
Código:
Programa principal.c:#include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> int main () { int vector [10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int cont; printf ("vector MULTIPLICADO = {"); for (cont = 0; cont < 9; cont++) { vector [cont] *= 2; printf ("%d, ", vector [cont]); } vector [9] *= 2; printf ("%d}\n", vector [9]); exit (0); }
Código:
El problema es que al ejecutar el programa ./principal no se ejecuta el programa multiplica (al menos no aparece el vector de ese programa impreso en pantalla), así que supongo que no estoy utilizando correctamente la función execlp(). O debería usar otra función...#include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> int main () { int vector [10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; int cont; if (fork != 0) wait(NULL); else { /* Proceso A */ execlp ("ej12_multiplica", "ej12_multiplica", vector); exit (0); // Creo que no haría falta. } printf ("Vector PADRE = {"); for (cont = 0; cont < 9; cont++) printf ("%d, ", vector [cont]); printf ("%d}\n", vector [9]); exit (0); }
¿Alguna pequeña ayuda? Gracias!!