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){ ... } ... }