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 :

envoi / reception de messages


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut envoi / reception de messages
    'soir, je cherche a echanger une structure entre deux processus sous cygwin et lorsque je lance les programmes j'ai "Bad System Call". Voic mon code:

    Emission
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <sys/types.h>
    #include <sys/ipc.h>
    #include <sys/msg.h>
    #include <sys/sem.h>
     
    typedef struct{
                   int a;
                   int b;
                   int c;
                   }T_test;
     
    int main()
    {
     
     int msqid;
     int msgflg = IPC_CREAT | 0666;
     key_t key;
     T_test test;
     
     key = 1234;
     
     test.a = 1;
     test.b = 2;
     test.c = 3;
     
     if((msqid = msgget(key, msgflg )) < 0)
     {
      perror("msgget");
      exit(1);
     }
     
     if (msgsnd(msqid, &test, sizeof(T_test), IPC_NOWAIT) < 0)
     {
      perror("msgsnd");
      exit(1);
     }
     
     return 0;
    }
    Reception
    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
    33
    34
    35
    36
    37
    38
    39
    40
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <sys/types.h>
    #include <sys/ipc.h>
    #include <sys/msg.h>
    #include <sys/sem.h>
     
    typedef struct{
                   int a;
                   int b;
                   int c;
                   }T_test;
     
     
    int main()
    {
     
     int msqid;
     key_t key;
     T_test test;
     
     key = 1234;
     
     if((msqid = msgget(key, 0666)) < 0)
     {
      perror("msgget");
      exit(1);
     }
     
     if(msgrcv(msqid, &test, sizeof(T_test), 0, 0) < 0)
     {
      perror("msgrcv");
      exit(1);
     }
     
     printf("\n%d, %d, %d\n", test.a, test.b, test.b);
     return 0;
    }
    Merci!!

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Bad système call il me semble en fait qu'avec cygwin tu n'as pas la possibilité d'utilisé toutes les api que l'on trouve sur les système nux.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    et si je prend un live cd ya des chances pour que ca marche? le truc avec les live cd c'est que j'arrive pas a les lancer sur mon portable (acer travelmate 8100)

  4. #4
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    et si je prend un live cd ya des chances pour que ca marche? le truc avec les live cd c'est que j'arrive pas a les lancer sur mon portable (acer travelmate 8100)
    Faut tenter mais on sors de l'optique de ce forum, pour tout problème de lancement d'un live CD (genre knoppix...) voir le forum Linux...

    Jc

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    juste pour information (pour ne pas sortir du cadre du forum) il semblerait qu'il soit possible d'utiliser les fonctions liées aux messages avec cygwin en utilisant une certaine variable "server"
    http://www.cygwin.com/cygwin-ug-net/using-cygwinenv.html
    J'ai pas encore lu en detail comment faire mais ca ne saurait tarder.

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/06/2015, 10h53
  2. probleme de reception de message udp apres envoi
    Par zarbiman dans le forum Développement
    Réponses: 2
    Dernier message: 12/12/2007, 23h21
  3. Accusé reception lors de l'envoi d'un message
    Par chaval dans le forum Outlook
    Réponses: 6
    Dernier message: 16/04/2007, 19h10
  4. A respecter lors de l'envoi d'un message (Version 2)
    Par Aurelien.Regat-Barrel dans le forum Windows
    Réponses: 0
    Dernier message: 04/01/2003, 15h59

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