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 :
Sur le peu d'explications que j'ai pu trouver sur le net, on explique trois choses :
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]; }
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 :
Dans ce cas quelle taille devrais-je spécifier aux primitives msgrcv et msgsnd ?
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; }
Merci d'avance !
Partager