fatto ma come è ovvio che sia...nada.

Ho risolto alternativamente, anche se la mia soluzione non è per niene pulita come la prima ma più una sorta di artefatto...

int
main (int argc, char *argv[])
{
int pid,stato;
char * pPath;
char * filename="es1figlio";
char tmp[100];
pPath = getenv ("PWD");//prendo path corrente
sprintf(tmp,"%s/%s\0",pPath,filename);

if((pid=fork())<0) perror("errore nella fork()");
if (pid == 0)
{
printf("exec del figlio \n");
if((stato=execl(tmp,filename,0))<0) perror("Errore nell'esecuzione di execlp!!!\n");
}

}

in pratica prendo la variabile dall'environnement.
Non è una soluzione che mi fa impazzire a funziona per lo scopo.
Qualcuno saprebbe aiutarmi sulla soluzione precedente?