Pages : 1
#1 Le 11/11/2008, à 13:52
- Hei
Problème avec fonction execlp(...)
Bonjour à tous.
Je suis en train de coder un petit programme en C qui utilise les fonctions système, notamment fork() et exec().
Mon problème est le suivant, je cherche à créer un certain nombre de processus fils par le processus "père". Je souhaite ensuite effectuer un recouvrement pour chacun de mes processus fils avec une fonction de la famille exec().
Mes fils sont bien créés, le problème survient lors du recouvrement. Lorsque j'exécute mon programme, J'ai droit à un magnifique :
./navire.c: 1: /bin: Permission denied
Au cas où, je poste le morceau de code faisant appel à la fonction exec() :
for(n = 0; n < nb_navire; n++)
{
switch(fork())
{
case -1:
printf("\nEchec du fork.");
exit(-1);
break;
case 0:
execlp("sh", "sh", "./navire.c", NULL);
break;
default:
printf("\nPid processus pere = %d", getpid());
break;
}
}
Comment puis-je faire pour que mon programme "ai le droit" d'utiliser sh ?
Je ne suis pas encore un "habitué" de Linux, j'ai fait quelques recherches avant de poster mais sans succès. J'espère ne pas poser un question de boulet
Merci pour vos éventuelles réponses
Hors ligne
#2 Le 11/11/2008, à 14:39
- Hei
Re : Problème avec fonction execlp(...)
Laissez tomber, j'ai trouvé
Déjà, j'avais une erreur de syntaxe : la commande à exécuter n'était pas " ./navire.c " mais " ./navire " (logique).
Ensuite, je devait spécifier un paramètre supplémentaire : " -c ".
Le code exact était donc " execlp( "sh", "sh", "-c", "./navire", NULL ); "
Désolé pour ce post inutile
Hors ligne