Tout document autorisé
Dans les fichiers nsSysteme.h, nsSysteme.hxx
et nsSysteme.cxx, vous disposez des wrappers correspondants
à l'utilisation des files de messages (espace de noms nsSysteme)
:
// Fonctions concernant les files de messages
void Msgctl (int msqid) throw (CExcFctSystIPC); void Msgctl (int msqid, int cmd, ::msqid_ds * buf)
int Msgget (::key_t key, int msgflg)
// key != IPC_PRIVATE int Msgget (::key_t key) throw (nsUtil::CExcFct); int Msgrcv (int msqid, void * msgp, std::size_t msgsz,
void Msgsnd (int msqid, void * msgp, std::size_t msgsz, int msgflg = 0)
|
Dans le fichier nsMsg.h, vous disposez des
déclarations suivantes :
/**
* * @File : nsMsg.h * * @Authors : M. Laporte * * @Date : 06/11/2001 * * @Version : V1.0 * * @Synopsis : * **/ #if !defined __NSMSG_H__ #define __NSMSG_H__ #include <cstddef> // size_t
namespace nsMsg
}; // SMsg const long CstMaxNumber = 4;
struct SRep
}; // SRep } // namespace nsMsg #endif __NSMSG_H_ |
exo_01
Dans le fichier exo_01p.cxx, écrire un "producteur" qui :
Dans le fichier exo_01c.cxx, écrire un "consommateur" qui :
Corrigés : Makefile - exo_01d.cxx - exo_01c.cxx - exo_01p.cxx
exo_02
Dans cet exercice, il s'agit de gérer des priorités des messages qui peuvent aller de 1 à CstMaxNumber (niveau 1 = priorité maximale)
Corrigés : exo_02c.cxx - exo_02p.cxx
exo_03
Dans cet exercice, il s'agit de gérer des messages en classes d'équivalence. Le type d'un message envoyé sera la taille maximale d'un message (CstMaxTaille) diminuée de la longueur de la chaîne contenue dans la partie "utile" du message. Le type sera donc d'autant plus petit que la taille du message sera longue.
Corrigés : exo_03c.cxx - exo_03p.cxx
©
M. Laporte
laporte@romarin.univ-aix.fr
D. Mathieu
mathieu@romarin.univ-aix.fr
I.U.T.d'Aix en Provence - Département Informatique