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 :

Passage de 'pipe' à une fonction ?


Sujet :

POSIX C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 88
    Points : 53
    Points
    53
    Par défaut Passage de 'pipe' à une fonction ?
    Bonsoir,

    Je dois programmer un petit script permettant d'échanger des informations entre processus, et je bloque sur le passage de pipe à une fontion ?

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/wait.h>
    #include <string.h>
    #include "lib_perso.h"
    #include "working_txt.h"
     
    #define MAX 16
     
    void terminal(int,int);
    void moteur  (int,int);
     
    int
    main (int argc, char **argv) {
        int p1[2],p2[2];
        int fils;
     
        if(pipe(p1)<1) exit(0);
        if(pipe(p2)<1) exit(0);
     
        fils=fork();
        if(fils<0) exit(1);
        if(fils==0) {
            terminal(p1,p2);
        } else {
             moteur(p1,p2);
        }
    }
     
    void
    terminal(int p1,int p2) {
        // On ferme les canaux inutiles
        close(p1[0]); close(p2[1]);
     
    }
     
    void
    moteur(int p1,int p2) {
        // On ferme les canaux inutiles
        close(p1[1]); close(p2[0]);
    }
    Bon, j'avoue je suis plutôt nul, mais en temps normal j'arrive à passer des int aux fonctions, mais là, veut pô

    Si quelqu'un peut me mettre sur la piste (la bonne )

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 88
    Points : 53
    Points
    53
    Par défaut
    Je pense avoir trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    void terminal(int *,int *);
    void moteur  (int *,int *);
     
    int
    main (int argc, char **argv) {
        int p1[2],p2[2];
        int fils;
     
        if(pipe(p1)<1) exit(0);
        if(pipe(p2)<1) exit(0);
     
        fils=fork();
        if(fils<0) exit(1);
        if(fils==0) {
            terminal(p1,p2);
        } else {
             moteur(p1,p2);
        }
    }
     
    void
    terminal(int *p1,int *p2) {
        // On ferme les canaux inutiles
        close(p1[0]); close(p2[1]);
     
    }
     
    void
    moteur(int *p1,int *p2) {
        // On ferme les canaux inutiles
        close(p1[1]); close(p2[0]);
    }

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    c'est ça. p1 et p2 sont des tableaux de 2 int...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage de paramètre à une fonction dans un G_CALLBACK
    Par Dimitri_87 dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 15/09/2006, 11h04
  2. [PL/SQL] : Passage de paramètres à une fonction
    Par dcollart dans le forum Oracle
    Réponses: 5
    Dernier message: 13/07/2006, 10h17
  3. Réponses: 8
    Dernier message: 10/03/2006, 17h28
  4. [VBA-E]passage de parametre à une fonction
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/02/2006, 17h51
  5. [JAVASCRIPT] passage d'argument à une fonction
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/06/2005, 18h17

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