next up previous contents
Next: Travail avec plusieurs serveurs Up: Les bases Previous: Macro commandes

Lecture des paramètres du bloc de communication

On a vu qu'un client pouvait écrire des paramètres nommés dans le bloc de communication. En fait l'accès à ces bloc est complètement libre. Un serveur peut également écrire dans ce bloc pour, par exemple, retourner des résultats au client. La récupération du contenu des paramètres se fait avec la fonction shmget(). Attention, on récupère toujours des chaînes de caractères. Par exemple, la récupération des NX et NY donnés dans un exemple précédent se fait de la manière suivante:

 
INTER > do i=1,dim(nx)
INTER >   nx(i)=ator(shmget(lcat("NX(",itoa(i),")")))
INTER >   ny(i)=ator(shmget(lcat("NY(",itoa(i),")")))
INTER > enddo
Une erreur apparaît si le paramètre n'existe pas.

Une fonction très pratique permet de lire les paramètres du bloc s'il sont nommés comme les variable du bloc de donnée. Cette commande est fetch(). Elle tente de lire tous les paramètres du bloc sauf le mot-clé COMMAND. Elle émet un warning, mais pas d'erreur si un paramètre n'a pas son correspondant dans les variables Inter. Elle retourne toujours zéro. L'exemple précédent s'écrit dans ce cas simplement:

 
INTER > shmstat=fetch()
Le bloc peut être vidé avec la commande shminit() et visualisé avec la commande shmshow(). ipcstat permet également de monitorer le contenu du bloc de communication.



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