next up previous contents
Next: Partage de donnéesMatrice Up: UTILISATION DE LA LIBRAIRIE Previous: Opérations de base sur

Initialisation des sémaphores et du bloc de communication

L'initialisation se fait avec la fonction "init_sem_block()" qui retourne un pointeur sur le block de communication et un descripteur de sémaphore. C'est au serveur de fournir les identificateurs nécessaires pour cette initialisation. Ils sont déclarés de manière globale dans libipc.c et donc le serveur doit les déclarer de manière externe et les initialiser avant l'appel à la fonction.

Le code serveur ressemble à:

#include <stdio.h>
#include <ipcdef.h>

int             semid;        /* descripteur semaphore */
struct block_kw *block;       /* pointeur sur bloc de communication*/

extern int      sem_key;      /* identificateur de semaphore */
extern int      block_key;    /* identificateur de memoire pour bloc */
...
main()
{
      ...
      sem_key   = 1001;
      block_key = 1002;
      if(init_sem_block(&semid, &block) < 0){
         ...
      }
      ...
}



WEBER Luc
Mon May 10 13:41:34 MET DST 1999