Hola a todos. Mi duda es la siguiente:
Tengo un programa muy simple que lo que hace es crear un nuevo proceso con una llamada a la función fork(). El proceso hijo a su vez ejecuta un programa creado por mi y el proceso padre espera por la terminación del hijo. Algo asi como:
pid_t pid=fork();
switch(pid){
//Proceso hijo
case 0:
result=execl("$HOME/copiar");
if(result==-1)
cout<<"Error al ejecutar el proceso hijo"<<endl;
//Proceso padre
default:
while((wait(&valor)!=pid);
cout<<"Finalizacion"<<endl;
}
El problema está en que cuando se lanza el hijo siempre me sale el mensaje de "error al ejecutar el proceso hijo". La cosa está en que al parecer no me convierte la variable de entorno "$HOME" por su valor.
He probado a poner la ruta completa donde se encuentra el ejecutable "copiar" y si me funciona pero poniendo la variable de entorno $HOME no.
Es que no se pueden utilizar variables de entorno en estos casos ?????
La cosa está en que en el programa final que tengo que hacer yo desconozco cual es el valor del home de cada usuario y por eso utilizaba esa variable de entorno. Pero viendo que no funciona ya nose si es que no se pueden utilizar, o no de esa manera.
Espero que alguien me de alguna idea de como solucionar este problema.
Saludos.