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 :

initialiser une file de messages


Sujet :

C

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 83
    Par défaut initialiser une file de messages
    Bonsoir à tous et bonne année ,

    Découvrant tout doucement les files de messages, je bloque d'ores et déjà sur un problème.

    A vrai dire je ne parviens même pas à initialiser ma file de messages. Voici le bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include <stdio.h>
    #include <sys/msg.h>
    #include <unistd.h>
    #include <time.h>
    #include <stdlib.h>
    #include <string.h> 
    #include <sys/ipc.h>
     
    typedef struct {
        long mtype;
        char mtext [256];
      } MESSAGE;
     
    MESSAGE message;
     
    #define LGMES sizeof(message.mtext)
     
    int main(int argc, char** argv) {
     
        key_t   cle = 17;
        int     numfms = -1;    
        int n;
     
        numfms = msgget (cle, IPC_CREAT|0666) ;
     
        if (numfms == -1) {
                perror ("case 1 erreur msgget") ;
                exit (1) ;
        }
     
        exit(0) ;
    }
    Je ne reçois pas de message d'erreur autre que le RUN FAILED. =/

    Bref, je peine beaucoup avec cette nouvelle matière. J'espère que quelqu'un saura y voir plus clair. ^^

    Un grand merci de m'avoir lu !

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour, j'ai compilé ton code sous ubuntu avec gcc et j'ai n'ai aucune erreur à l'exécution.

    Et normalement, si tu as un "run failed", tu devrais bien avoir un autre message d'erreur.

    Si ton IDE est quelque peu fainéant essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    perror ("case 1 erreur msgget");
    fflush(stderr);
    exit(1);
    Normalement, on a pas besoin de fflush(stderr); mais certains IDE n'implémentent pas toujours très correctement leur sortie de programme.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 83
    Par défaut
    Merci de votre réponse,

    je n'ai toujours pas d'erreur sous NetBeans et sous Eclipse ça me retourne ceci: [main] fileMessage 740 open_stackdumpfile: Dumping stack trace to fileMessage.exe.stackdump

    Par contre je suis sous Windows.
    Je suppose que le problème provient de là ?

    C'est tout de même étrange puisque NetBeans utilise gcc pour compiler. De plus, même en utilisant Cygwin en invite de commande ça plante à l'exécution (il me manque peut-être des bibliothèques aussi...). Il ne me reste plus qu'à installer un Ubuntu en vitesse donc ?

  4. #4
    Membre Expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Par défaut
    Cygwin est censé gérer ça...
    Mais il faut compiler avec le gcc de cygwin !

    Tu as oublié le plus important : créer la clé !
    Donner un numéro au hasard ne fonctionnera pas ! (enfin vaut mieux pas...)

    Bref : utilise ftok pour transformer un path en clé !
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/04/2011, 17h35
  2. Lecture synchrone et asynchrone d'une file de message
    Par asnaeb dans le forum Débuter
    Réponses: 1
    Dernier message: 09/05/2010, 18h27
  3. Insérer un message dans une file MQSeries distante
    Par narodex dans le forum Websphere
    Réponses: 0
    Dernier message: 16/10/2009, 08h50
  4. Insérer un message dans une file MQSeries distante
    Par narodex dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 09/10/2009, 15h57
  5. Réponses: 5
    Dernier message: 24/05/2006, 15h41

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