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 :

Partage mémoire pour tous les processus


Sujet :

POSIX C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Par défaut Partage mémoire pour tous les processus
    Bonjour,
    je suis en train de faire un petit programme sous linux en C.

    Je voudrais partager un segment de mémoire qui soit utilisables par tous les processus qui tournent en même temps sur ma machine, et pas seulement ceux qui sont créés via des fork du processus qui crée les segments de mémoire.

    Voilà, j'espère avoir été assez clair...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    En ce cas, il te faut sans doute utiliser de la mémoire partagée System V.
    Si je me souviens bien, les fonctions impliquées ont des noms du genre ftok(), shmget(), shmat(), shmctl()...
    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 confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Par défaut
    oui, mais, j'ai un soucis: soit un processus A qui possède deux fils. Si je crée un segment de mémoire partagé pour le premier fils de A, le second n'y a pas accès.

    Citation Envoyé par page man shmget
    fork() Après un fork() le fils hérite des segments de mémoire partagée.
    ce qui montre que le segment n'est pas partagé pour tous les processus...

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Par défaut
    tout tes processus peuvent acceder a ton segment de mémoire partagé.
    Il leur faut juste la clef, qui te permet d'identifier le segment.
    Ensuite il s'y attache (shmat) partage leur résultat puis s'en detache (shmdt)

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 439
    Par défaut
    Citation Envoyé par luckyvae Voir le message
    Je voudrais partager un segment de mémoire qui soit utilisables par tous les processus qui tournent en même temps sur ma machine, et pas seulement ceux qui sont créés via des fork du processus qui crée les segments de mémoire.

    Voilà, j'espère avoir été assez clair...
    ...mais pas assez précis : est-ce que tu as besoin que ce segment apparaisse à la même adresse dans tous les processus?

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/07/2014, 14h16
  2. Une imprimante partagée pour tous les utilisateurs
    Par iubito dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 24/09/2009, 10h18
  3. Session partagée pour tous les utilisateurs
    Par maniaco_jazz dans le forum Langage
    Réponses: 12
    Dernier message: 19/02/2009, 14h52
  4. TEdit numérique pour tous les claviers
    Par totofweb dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/06/2004, 11h20

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