Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/05/2007, à 17: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, à 18:10)

Hors ligne

#2 Le 06/05/2007, à 17: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, à 18:00

lapatache

Re : [C] execl : "Permission denied"

Freddy a écrit :

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, à 18: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, à 18:17

lapatache

Re : [C] execl : "Permission denied"

Marabout a écrit :

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