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 :

Communication par pipe entre deux processus


Sujet :

POSIX C

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Communication par pipe entre deux processus
    Bonjour,
    j'ai un problème lorsque j'écris dans une pipe je n'arrive pas à lire le contenu.

    je crée la pipe d'abord par _pipe(,,);
    j'écrit par write(,,)
    ensuit je veux lire je n'arrive pas à lire.

  2. #2
    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
    Poste ton code.
    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.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 136
    Points : 100
    Points
    100
    Par défaut
    Bonjour

    Citation Envoyé par mohamedz
    Bonjour,
    je crée la pipe d'abord par _pipe(,,);
    j'écrit par write(,,)
    ensuit je veux lire je n'arrive pas à lire.
    Pourquoi _pipe(), au lieu de pipe() ? perso, je ne connais pas _pipe().

    Tu es sous linux ou windows ?

    Il faut peut-être tester le retour de ta fonction.


    Citation Envoyé par Médinoc
    Poste ton code.
    @+

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    si tu es sous linux, après le pipe, fais un fdopen pour l'utiliser comme un fichier
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    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
    Pourquoi _pipe(), au lieu de pipe() ? perso, je ne connais pas _pipe().
    Je parie qu'il est sous Windows.
    La fonction _pipe() de microsoft n'est pas POSIX et prend des paramètres supplémentaires.
    http://msdn2.microsoft.com/en-us/library/edze9h7e.aspx
    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.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 136
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par Médinoc
    Je parie qu'il est sous Windows.
    La fonction _pipe() de microsoft n'est pas POSIX et prend des paramètres supplémentaires.
    http://msdn2.microsoft.com/en-us/library/edze9h7e.aspx
    Oui, il est sous windows, et peut être même avec Visual c++.
    Je ne suis pas un expert, mais je ne pense pas que ce sont les bons outils pour comprendre le fonctionnement des pipes.

    @+

  7. #7
    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
    Moi non plus.

    mohamedz, tu devrais t'initier aux pipes avec un système unixoïde (Linux, etc.). La norme POSIX, qui régit ces systèmes, est très répandue et les pipes POSIX sont plus simples.
    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.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Points : 69
    Points
    69
    Par défaut
    nom d'une pipe...

  9. #9
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 1
    Points : 2
    Points
    2
    Par défaut
    salut,

    j'ai créé deux applications: la première est sur Visual Studio (C++) et la deuxième sur Labview. je veux créer une communication entre les deux de telle sorte que celle de Labview commande une variable définie sur VS.
    j'ai pensé à mettre en place à créer un partage de variables entre les deux applis (avec CreateMapView et MapView0fFile...) , et je pense aussi à utiliser des pipes.
    pourriez vous me dire qu'elle est la plus simple et la plus efficace??

    Merci beaucoup.

  10. #10
    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
    Ça dépend dont tu as besoin comme synchro...
    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.

Discussions similaires

  1. Pipe entre deux processus inconnus ?
    Par subyyy dans le forum C
    Réponses: 8
    Dernier message: 17/06/2015, 09h33
  2. Mémoire commune entre deux processus - shmat
    Par KaNaRette dans le forum C
    Réponses: 8
    Dernier message: 19/10/2011, 19h23
  3. Réponses: 4
    Dernier message: 19/11/2010, 16h42
  4. Réponses: 4
    Dernier message: 21/08/2009, 10h48
  5. Réponses: 5
    Dernier message: 29/03/2007, 22h26

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