Pages : 1
#1 Le 06/05/2007, à 16:28
- lapatache
[C] execl : "Permission denied"
Bonjour,
Dans un exemple simple, j'essai de lancer une executable c à partir d'un autre eb utilisant la commande execl.
Je travaille sous Eclipse + cdt
J'ai donc 2 projets: un pour l'executable "client", un autre pour le "serveur".
J'obtiens l'erreur "Permission denied" alors que j'ai fait précédemment:
$ cd /home/benoit/workspace/LINUX2.40b/Release
$ sudo chmod +x LINUX2.40b
Ce qui en toute logique donne à ce fichier le droit de s'executer.
Quelqu'un aurait-il une idée sur les droits manquants pour que ce programme fonctionne?
Merci d'avance.
Lapatache
// -----------------------------------
// Projet "LINUX_2.40a"
// Fichier "run_2_40a.c"
// -----------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
int main()
{
pid_t pid;
int i, j;
int res;
i=1;
j=2;
pid=fork();
if(pid==0)
{
res=execl("/home/benoit/workspace/LINUX2.40b/Release", "LINUX2.40b", i, j, NULL);
if(res==-1)
{
perror("Erreur");
}
}
else {wait(); }
exit(0);
}
// -----------------------------------
// Projet "LINUX_2.40b"
// Fichier "run_2_40b.c"
// -----------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
int main(int argc, char *argv[], char **arge[])
{
int somme, a, b;
if(argc != 3 )
{
printf("erreur");
exit(1);
}
a=atoi(argv[1]);
b=atoi(argv[2]);
somme = a + b;
printf("somme : %d\n", somme);
exit(0);
}
Dernière modification par lapatache (Le 06/05/2007, à 17:10)
Hors ligne
#2 Le 06/05/2007, à 16:42
- Freddy
Re : [C] execl : "Permission denied"
Si le fichier LINUX2.40b t'appartient, pourquoi donc utilises-tu «sudo» pour donner les droits d'exécution à ce fichier ? (et bien sûr, tu as aussi donné les droits d'exécution aux fichiers après compilation...)
There is no system but GNU, and Linux is one of its kernels.
Hors ligne
#3 Le 06/05/2007, à 17:00
- lapatache
Re : [C] execl : "Permission denied"
Si le fichier LINUX2.40b t'appartient, pourquoi donc utilises-tu «sudo» pour donner les droits d'exécution à ce fichier ? (et bien sûr, tu as aussi donné les droits d'exécution aux fichiers après compilation...)
C'est vrai cela ne sert à rien, je devrais avoir les droits dans tous les cas vu que je suis le créateur... c'est bien le problème!
Hors ligne
#4 Le 06/05/2007, à 17:13
- Marabout
Re : [C] execl : "Permission denied"
Salut,
essaye plutôt ça:
res=execl("/home/benoit/workspace/LINUX2.40b/Release/LINUX2.40b", "", i, j, NULL);
Hors ligne
#5 Le 06/05/2007, à 17:17
- lapatache
Re : [C] execl : "Permission denied"
Salut,
essaye plutôt ça:res=execl("/home/benoit/workspace/LINUX2.40b/Release/LINUX2.40b", "", i, j, NULL);
Même résultat : permission denied...
Hors ligne