
30/08/2006, 15:54
|
| | Fecha de Ingreso: febrero-2005
Mensajes: 105
Antigüedad: 20 años, 1 mes Puntos: 1 | |
Funciones execlp(), .... hola, tengo un problemilla. y es que estoy intentando crear algunos programas para la manipulación de procesos y hay un concepto que no tengo muy claro: Las funciones execlp(), execvp(), ... ¿cual debo utilizar en qué caso?. Por ejemplo:
Programa multiplica.c:
Código:
#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);
}
Programa principal.c:
Código:
#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);
}
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...
¿Alguna pequeña ayuda? Gracias!! |