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 :

malloc dans une memoire partagée [Non suivi]


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Par défaut malloc dans une memoire partagée
    bonjour,

    je voudrais mettre une liste chainée dans une mémoire partagée mais comment allouer de la mémoire qd je crée un nouveau chainon et que je veuille l'ajouter à la chaine. Qd on fait un malloc, on reserve seulement de la mémoire pour le programme qui l'appelle...
    merci de votre réponse

  2. #2
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Je ne pense pas qu'il soit possible de redimensionner l'espace alloué en mémoire partagée.
    Ce que tu peux faire en revanche, c'est allouer l'espace d'un maillon en mémoire partagée et faire consulter régulièrement cet emplacement mémoire à tes processus pour voir si le maillon a changé. Si oui, alors chaque processus ajoute le maillon à sa mémoire privée.

  3. #3
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Citation Envoyé par iznogoud36
    bonjour,

    je voudrais mettre une liste chainée dans une mémoire partagée merci de votre réponse
    Mémoire partagée ? A ma connaissance c'est pas standard il me semble.
    Tu parles de mémoire partagée c'est du ressort de l'OS donc il faut utiliser des fonctionnalités de l'OS ou API ( pour Windows API win32 )

  4. #4
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Par défaut
    merci pour vos réponses, j'ai continué mes recherches et j'ai entendu parler de shmalloc(),

    http://techpubs.sgi.com/library/tpl/...&srch=shmalloc

    elle permet apparement de réserver un espace dans une "symmetric heap" (mémoire partagée??)
    je ne sais pas du tout si c'est standard et si ca marche bien.
    si qq a eu deja affaires à shmalloc() j'aimerais savoir si c'est une solution efficace ou non.
    je bosse sous linux

    merci

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    je ne crois pas que ce soit standard.. Visiblement dispo sous Windows, sous SGI, mais c'est tout je pense....

  6. #6
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Par défaut
    c'est qd mm bizarre qu'il n'y ait rien pour faire un malloc dans une shared memory surtout sous linux...enfin bon il doit y avoir des raisons valables mais qui me dépassent

    quelle serait alors la meilleure solution pour partagée une fifo entre 2 programmes qui peuvent ajouter et retirer des elements de cette fifo.
    la solution proposée par muad'dib me parait un peu lourde.

  7. #7
    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
    transforme ta liste chainée, remplace les malloc par des shmget en IPC_CREATE, tes pointeurs sur les suivants par des key_t que tu use avec shmget pour recup l'espace alloué ...
    ça parait compliqué dis comme ça

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/03/2011, 11h52
  2. [D7] Evénement OnClick dans une procédure partagée
    Par alainvh dans le forum Débuter
    Réponses: 9
    Dernier message: 28/01/2011, 19h04
  3. Mappath dans une procédure partagée
    Par soso78 dans le forum VB.NET
    Réponses: 0
    Dernier message: 17/03/2009, 10h25
  4. Malloc dans une boucle
    Par Anonymouse dans le forum C
    Réponses: 14
    Dernier message: 16/11/2007, 09h19
  5. pointeurs dans une memoire partagée
    Par iznogoud36 dans le forum C
    Réponses: 15
    Dernier message: 13/06/2007, 17h05

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