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 :

Signaux temps-réel et malloc


Sujet :

POSIX C

  1. #1
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 156
    Points : 76
    Points
    76
    Par défaut Signaux temps-réel et malloc
    Bonjour à tous,

    J'ai besoin de faire communiquer 2 processus, l'un envoie les données, l'autre les lit. Les données à envoyer sont allouées via malloc puis envoyées à travers des signaux temps-réel avec la fonction sigqueue.

    Le problème, c'est que dans l'autre processus, je récupère bien le pointeur vers les données, mais leur lecture provoque une erreur de segmentation...Un gros doute m'envahit : est-il possible de partager ainsi entre 2 processus une variable allouée avec malloc ? Si non, comment utiliser le champ sival_ptr de l'union sigval pour partager des données via les signaux temps-réel ?

    Merci !

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Chaque process a sa propre zone mémoire. Un process B ne peux pas accéder à une zone mémoire allouée dans un process A. A part bien sûr si la zone en question a été allouée en mémoire partagée.

    sival_ptr n'a de sens que s'il pointe sur une zone de mémoire partagée ("shared memory") que les deux process ont attaché (avec shmat() ou mmap()). Sinon tu ne peux que passer un int, avec sival_int.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 156
    Points : 76
    Points
    76
    Par défaut
    Merci pour ta réponse !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/03/2014, 14h40
  2. Filtrage de bruits sur des signaux temps réel
    Par sitalebs dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 29/06/2009, 09h43
  3. Voir requête éxécuté en temps réel ?
    Par [DreaMs] dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/01/2004, 14h52
  4. cubes temps réel en ROLAP
    Par Guizz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 09/07/2003, 16h36
  5. Durée d'un traitement temps réel
    Par Almex dans le forum C
    Réponses: 5
    Dernier message: 29/03/2003, 14h15

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