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!!

