Bonjour à tous,

Je travaille actuellement sur un projet d'Architecture des systèmes d'exploitation dans lequel je dois (entre-autre) simuler la sychronisation d'une montre via un serveur horaire.
Pour communiquer entre le père (la montre locale) et son fils (serveur horaire), je souhaite utiliser une file de message. Dans <sys/msg.h> on trouve bien un modèle pour la structure du message à utiliser :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
// Template for struct to be used as argument for 'msgsnd' and 'msgrcv'.
struct msgbuf {
   long int mtype; // Type of received/sent msg
   char mtext[1];
}
Sur le peu d'explications que j'ai pu trouver sur le net, on explique trois choses :
1) mtype>0 (très important !!! mais apparement personne ne sait pk...)
2) Qu'il faut créer un tableau mtext beaucoup plus grand que juste mtext[1] (ceci est compréhensible)
3) Que lorsque l'on spécifie la taille du message dans un des arguments de msgsnd/msgrcv il faut spécifier lenght=sizeof(struct msgbuf)-sizeof(long int);


Mais voilà pour faire passer un "Hello" tout se passe bien avec cette structure. Moi ce que je souhaite c'est faire passer 3 entiers. Ais-je le droit de déclarer la structure du message ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
struct my_msg {
   int hour;
   int min;
   int sec;
}
Dans ce cas quelle taille devrais-je spécifier aux primitives msgrcv et msgsnd ?

Merci d'avance !