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

 C Discussion :

communication de processus en anneaux


Sujet :

C

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2018
    Messages : 4
    Points : 4
    Points
    4
    Par défaut communication de processus en anneaux
    Bonjour
    il faut que je fasse passer un numéro random de pere en fils connectés en anneaux par des tubes
    a chaque itération
    - j'appelle fork
    - je crée un tube qui relie le pere et le fils
    - je passe l'information
    - je supprime le tube.
    pour le premier pere je fais dup2(tube_retour[0],0)
    pour le dernier fils je fais dup2(tube_retour[1],1)
    voilà j'ai bouclé l'anneau
    serait il possible de lire dans le premier père ce qu'il y a dans le tube_retour? je n'arrive pas a être dans le pere , je suis coincée dans le dernier fils

    merci de m'avoir lu

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 616
    Points : 30 833
    Points
    30 833
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Il faudrait avoir le code pour pouvoir mieux comprendre ce qui ne va pas. Mais déjà si tu supprimes le tube juste après avoir écrit dedans, ça ne soit pas trop être facile de lire son contenu. Ce comportement ressemble alors à un processus qui écrit dans un tube sans personne pour le lire. Dans ce cas, le processus reste bloqué.
    Sinon j'ai plusieurs questions
    • pourquoi à chaque nombre tu refais toute la création de l'anneau ? tu ne peux pas créer l'anneau une bonne fois puis à chaque nombre le faire passer dans l'anneau ?
    • pourquoi tu dupliques les tubes dans stdin et stdout ? Perso je dois écrire dans un tube j'écris directement dedans. Je ne vois pas l'utilité de le relier à stdout pour ensuite écrire dans stdout (enfin je présume que c'est ce que tu fais)
    • as-tu bien pensé, dans chaque fils, à fermer le côté du tube qu'il n'utilise pas ?
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2018
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    voici le code qui est dans une fonction
    Images attachées Images attachées  

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2018
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci en tout cas de m'aider car je découvre le C et la matière système
    j'aimerais faire un anneau tout prêt mais je trouve plus facile de le crée bout à bout à chaque création de fils ..
    Du coup je ne ferme pas le coté lecture/ecriture du tube parceque j'ai vu que ça ne changeait pas le résultat dans le shell, mais j'imagine que c'est une grosse erreur
    et pour la dupplication , j'essaie juste de coller chaque bout des tubes aux processus pere , processus fils
    Mais a chaque fois je creer un tube qui s'appelle exactement pareil donc j'imagine que je l'écrase ou je sais pas où il finit...

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 616
    Points : 30 833
    Points
    30 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par loannechou Voir le message
    voici le code qui est dans une fonction
    Oui c'est dans le forum qu'il faut le mettre, entre , pour qu'on puisse ensuite le copier/coller.

    Citation Envoyé par loannechou Voir le message
    j'aimerais faire un anneau tout prêt mais je trouve plus facile de le crée bout à bout à chaque création de fils ..
    Admettons, enfin toutes les solutions sont possibles. avec l'anneau créé en live, on peut alors paramétrer le nombre de sommets. Ce serait bien d'avoir aussi l'énoncé. Faut-il faire un chainage stye P => F1 => F2 => F3 (chaque processus fils du précédent) ou bien P => F1, P => F2, P => F3 (chaque processus fils d'un seul père qui resterait alors au centre de son étoile) ?

    Citation Envoyé par loannechou Voir le message
    Du coup je ne ferme pas le coté lecture/ecriture du tube parceque j'ai vu que ça ne changeait pas le résultat dans le shell, mais j'imagine que c'est une grosse erreur
    Non, ça empêche pas le truc de fonctionner.

    Citation Envoyé par loannechou Voir le message
    ou je sais pas où il finit...
    Ben... ce serait bien tout de même de le savoir. Il me semble toutefois que chaque processus doit avoir 2 pipes (un pipe pour lire les données venant de sa gauche, et un autre pour écrire les données qui iront à droite)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [windows] Communication inter-processus
    Par litbos dans le forum Windows
    Réponses: 6
    Dernier message: 16/01/2007, 10h13
  2. [débutant] Communication inter-processus
    Par tooney dans le forum C
    Réponses: 3
    Dernier message: 29/12/2005, 21h48
  3. communication inter-processus
    Par benoit70 dans le forum MFC
    Réponses: 1
    Dernier message: 14/04/2005, 10h55
  4. Lecture standard et communication entre processus!
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/07/2003, 17h37
  5. Communication entre processus
    Par markopolo dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/06/2003, 17h21

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