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

- Obtention d'une clef unique

La fonction ftok ()

- Les files de messages

Les fonctions msgget(), msgctl(), msgsnd(), msgrcv()

- Les sémaphores

Les fonctions semget(), semop(), semctl()

- Les mémoires partagées

Les fonctions shmget (), shmat(), shmdt (), shmctl ()

- Annexes