Buenas gente, tengo el siguiente código::
Código:
int main()
{
int pid;
pid = fork();
if(pid==-1){
perror("No se ha podido crear el proceso hijo\n");
}
if(pid==0){
printf("Soy el hijo\n");
FILE* archRutina = fopen("datosDeEntrada.txt","r");
FILE* archTemporal = fopen("archivoTemporal.txt","w");
dup2(fileno(archRutina),STDIN_FILENO);
dup2(fileno(archTemporal),STDOUT_FILENO);
system("/home/utnso/workspace/EjemplosC/Debug/./EjemplosC ");
fclose(archRutina);
fclose(archTemporal);
}
else{ // Cuando es distinto de cero es el padre
printf("Soy el padre\n");
wait(NULL);
printf("Mi proceso hijo ya ha terminado.\n");
}
return 0;
}
Mi intencion es crear un proceso hijo que ejecute un programa, y hacer que el proceso padre termine despues de su hijo, por eso mismo uso el wait, al ejecutarlo tira el segmentation fault, lo debugguie y aun asi sigo sin entender porque no funciona, alguien me da una mano con esto?