Communications inter-processus (SYSTEM V IPC) en C
Interface IPC
L'interface d'IPC (Inter Process Communication) repose sur trois concepts :
- les messages pour effectuer des échanges de données structurés,
- les sémaphores pour synchroniser des processus,
- la mémoire partagée qui permet aux processus de partager une partie de leur espace d'adressage.
Création d'une IPC
Une IPC est crée ou ouverte avec les fonctions suivantes, qui fourniront un identifiant d'IPC.
- msgget () pour les messages
- semget () pour les sémaphores
- shmget () pour la mémoire partagée
Mode d'ouverture et permissions
Les modes d'ouverture et permissions sont les suivants:
-Les modes classiques d'accès aux i-nodes: rwxrwxrwx.
- IPC_PRIVATE garantie la création d'un canal IPC avec une clef
unique privée (Il s'agit d'un type key_t et non d'un simple flag).
- IPC_RMID pour remove resource, supprimer la ressource.
- IPC_SET pour positionner des options.
- IPC_STAT pour récupérer des options de la ressource.
- IPC_CREAT un canal est créé uniquement s'il n’existe
pas déjà, sinon réutilisation de celui existant.
- IPC_EXCL associé au mode IPC_CREAT, il y aura échec de création
si un canal IPC existe déjà. Force donc l'utilisation d'un nouveau
canal IPC.
- IPC_NOWAIT retourne une erreur si la requète doit attendre.
Voilà pour la base. Vous allez pouvoir utiliser tout cela dans vos programmes
grâce aux explications à venir dans les chapitres suivant:
Chapitres
La fonction ftok ()
Les fonctions msgget(), msgctl(), msgsnd(), msgrcv()
Les fonctions semget(), semop(), semctl()
Les fonctions shmget (), shmat(), shmdt (), shmctl ()
- Annexes