Questo è il tuo codice iniziale:
codice:
...
if (pid == 0)
{
  execl("./es1figlio.o","es1figlio.o", (char*)0);
  printf("Errore execlp\n"); /*** Sbaglio o manca un if? ***/
}
...
Questo è il tuo nuovo codice:
codice:
...
if (pid == 0)
{
  printf("exec del figlio \n");
  if((stato=execl(tmp,filename,0))<0) perror("Errore nell'esecuzione di execlp!!!\n"); /*** QA C'E IF(...) */
}
...
Sarà mica questo il problema???