IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

execv execvp et >


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    wkd
    wkd est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 112
    Par défaut execv execvp et >
    bonjour,

    je vois pas comment rediriger la sortie vers un fichier. On m'a dit qu'il fallait faire un dup. Alors là, je comment plus rien.

    Si vous avez un exemple à ma question, je vous serai fort reconnaissant.

    mon objectif:

    ne pas utiliser la fonction system(), mais execv, execvp(la famille exec*)

    si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    char *argument[2];
     
    argument[0]="./checksum/checksum";
    argument[1]=fichier;      de type char *fichier
    execvp(argument[0],argument[1]);
    Je ne pense pas qu'il y ait un soucis dessus(la compilation alerte aucune erreur).Lorsque j'execute, Le resultat ne s'affiche pas à l'ecran ou n'envoie pas vers un fichier.

    le fichier checksum ne doit en aucun cas etre modifié :/ et génère que le checksum+nom de fichier


    Alors comment faire?

    Merci

  2. #2
    wkd
    wkd est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 112
    Par défaut
    aucune idee?

  3. #3
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Citation Envoyé par wkd
    Je ne pense pas qu'il y ait un soucis dessus(la compilation alerte aucune erreur).Lorsque j'execute, Le resultat ne s'affiche pas à l'ecran ou n'envoie pas vers un fichier.
    Peux-tu nous donner un code minimal, compilable, et reproduisant l'erreur ? Par ailleurs, quelles options de compilation utilises-tu (ne pas voir de warning ne signifiant pas qu'il n'y en ait pas, ni que le programme soit correct).
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  4. #4
    wkd
    wkd est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 112
    Par défaut
    voici la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    char * lire_checksum(char *fichier){
    //methode 1
     char *argument[2];
     argument[0]="checksum/checksum";
     argument[1]=fichier;
     execvp(argument[0],argument);
     
    //methode 2
    system(concatener_chaine(concatener_chaine("/Users/xxx/Desktop/checksum/checksum ",fichier)," >>fichier_sortie"));
    return "ok";
    }
    le 2e exemple marche bien, mais assez lourd

    Je suppose que si je veux faire comme le 2e exemple, il faudrai utiliser les dup/dup2 et fork....mais je vois pas comment faire avec l'utilisation de la methode 1

  5. #5
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    tu peux te tourner vers freopen

    qui fait ce que tu souhaite

  6. #6
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Si je comprends bien, tu veux faire le checksum d'un fichier. Pourquoi ne pas implémenter cette fonctionnalité en C ? (il doit exister des librairies porposant cela un peu partout sur le net)
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. utilisation de execve
    Par yamnetouaga dans le forum C
    Réponses: 9
    Dernier message: 16/02/2007, 12h09
  2. Rediriger la sortie de execvp
    Par v4np13 dans le forum C
    Réponses: 5
    Dernier message: 17/12/2006, 14h01
  3. probleme avec os.execv
    Par iwky dans le forum Général Python
    Réponses: 5
    Dernier message: 08/06/2006, 16h56
  4. Réponses: 2
    Dernier message: 21/03/2006, 15h35
  5. Réponses: 5
    Dernier message: 13/12/2005, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo