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

POSIX C Discussion :

Fonction exec redirection vers fichier


Sujet :

POSIX C

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 Fonction exec redirection vers fichier
    Bonjour,

    Je ne vois pas comment utiliser la fonction exec , execvp etc


    La seule chose que je voudrais, c'est rediriger vers un fichier par exemple le résultat.


    La commande system(concatener_chaine("mkdir ",fichier)); n'est pas la syntaxe idéale. Je préfère me pencher sur les syntaxes exec.
    Vous vous avez un exemple à me montrer, n'hesiter pas. (autre que ls, parce que je ne comprends pas trop.

    Merci

  2. #2
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Si c'est la commande pour créer un dossier, je te conseille d'utiliser l'appel système mkdir (man 2 mkdir).

  3. #3
    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
    comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char *parms[] = {"cat","monfichier",NULL};
    execv (parms[0], parms);
    -edit: erreur corrigée-

  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
    Mon objectif, c'est afficher le resultat dans un fichier avec l'aide de la fonction exec comme par exemple en passant en argument une commande md5 me fourni un resultat : serie de chiffre et de lettre md5, nom de fichier ainsi que la date de modification/creation

  5. #5
    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
    Dark_Ebola, t'es sur que le code est correct???

    parce que n'arrive pas a compiler, je suis sous unix


    Merci. Autrement, comment effectuer ">" pour affectuer le resultat dans un fichier avec dup et dup2???(je suppose que c'est la seule solution dans utiliser la commande system() et en utilisant exec* à tout prix...

  6. #6
    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
    petite erreur de ma part

    ebola@gentoo ~ $ cat exec.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
     
    int
    main ()
    {
     
      char *parms[] = { "/usr/bin/xmms2", "next", NULL };
      execv (parms[0], parms);
      perror ("execv");
      return EXIT_FAILURE;
    }
    ebola@gentoo ~ $ gcc -Wall -o exec exec.c
    ebola@gentoo ~ $ ./exec

    ça marche. (j'entend par la, que j'entend que ça marche, si vous me suivez )

    -edit: mujgika : avec le const c'est mieux ? j'ai un warning moi -

  7. #7
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par wkd
    Dark_Ebola, t'es sur que le code est correct???

    parce que n'arrive pas a compiler, je suis sous unix


    Merci. Autrement, comment effectuer ">" pour affectuer le resultat dans un fichier avec dup et dup2???(je suppose que c'est la seule solution dans utiliser la commande system() et en utilisant exec* à tout prix...
    Dark_Ebola a sans doutes voulu écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char const * parms[] = {"cat", "monfichier", NULL};
    execv (parms[0], parms);
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char parms[][] = {"cat","monfichier",NULL};
    execv (parms[0], parms);
    EDIT: Désolé Dark_Ebola, j'avais pas vu ta correction... gcc me donne un avertissement si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char * parms[] = {"cat", "monfichier", NULL};
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char const * parms[] = {"cat", "monfichier", NULL};
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  8. #8
    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
    bonsoir,


    j'ai toujours la meme erreur que ce soit avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char **parms= {"cat","monfichier",NULL};
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char const **parms= {"cat","monfichier",NULL};
    il me mets qu'ils y un erreur :
    partie1.c:459: warning: passing argument 2 of 'execv' from incompatible pointer type


    "monfichier" est de type char * ?


    Comment se fait-il??? je n'ai toujours pas reussi à utliser execv :/

Discussions similaires

  1. redirection vers fichier local
    Par dattebayo dans le forum Langages serveur
    Réponses: 0
    Dernier message: 15/09/2013, 20h50
  2. [PHP 4] redirection vers fichier php
    Par lapinou8430 dans le forum Langage
    Réponses: 5
    Dernier message: 15/02/2009, 12h07
  3. Redirection vers fichier erreur javac
    Par XtraDelirium dans le forum Langage
    Réponses: 7
    Dernier message: 23/02/2007, 20h51
  4. Réponses: 3
    Dernier message: 10/08/2006, 20h04
  5. probleme redirection dup2 vers fichier
    Par gee_brice dans le forum C
    Réponses: 3
    Dernier message: 03/03/2006, 20h08

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