svipc   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel de l'administrateur Linux (7)
Updated: 1er novembre 1993
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
svipc - Mécanisme System V de communication entre processus  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <sys/sem.h>
#include <sys/shm.h>
 



DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Cette page de manuel documente l'implémentation sous Linux des mécanismes System V de communication entre processus : les files de messages, les ensembles de sémaphores, et les segments de mémoire partagée. Par la suite, le mot ressource se rapportera à l'un de ces mécanismes.  



Autorisations d'accès aux ressources.   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Pour chaque ressource, le système utilise une structure commune, de type struct ipc_perm, pour enregistrer les informations permettant de déterminer les autorisations concernant les opérations ipc. la structure ipc_perm définie dans le fichier <sys/ipc.h> inclut les membres suivants :

struct ipc_perm {
    uid_t  cuid;   /* UID du créateur     */
    gid_t  cgid;   /* GID du créateur     */
    uid_t  uid;    /* UID du propriétaire */
    gid_t  gid;    /* GID du propriétaire */
    ushort mode;   /* Autorisations r/w   */
};

Le membre mode de la structure ipc_perm définit, sur ses 9 bits de poids faibles, les permissions d'accès à la ressource, pour un processus effectuant un appel système ipc. Les permissions sont interprétées ainsi (nombres en octal) :

    0400    Lecture par le propriétaire.
    0200    Écriture par le propriétaire.

    0040    Lecture par le groupe.
    0020    Écriture par le groupe.

    0004    Lecture par les autres.
    0002    Écriture par les autres.

Les bits 0100, 0010 et 0001 (bits exécution) ne sont pas utilisés par ces appels systèmes. De plus, « écriture » a la signification « modification » pour un ensemble de sémaphores.

Le même fichier d'entête définit également les constantes symboliques suivantes :

IPC_CREAT
Créer une entrée si la clé n'existe pas.
IPC_EXCL
Échouer si la clé existe.
IPC_NOWAIT
Retourner éventuellement une erreur, mais ne pas attendre.
IPC_PRIVATE
Clé privée.
IPC_RMID
Supprimer la ressource.
IPC_SET
Positionner une option concernant la ressource.
IPC_STAT
Obtenir les options concernant la ressource.

Notez que IPC_PRIVATE est du type key_t alors que les autres constantes symboliques sont des options que l'on regroupe avec un OU binaire « | » dans une variable de type int.  




Files de messages.   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Une file de message est définie par un entier positif unique (son msqid) et dispose d'une structure associée de type struct msqid_ds, définie dans <sys/msg.h>, qui contient les membres suivants :

struct msqid_ds {
    struct ipc_perm msg_perm;
    msgqnum_t       msg_qnum;    /* nb messages dans la file      */
    msglen_t        msg_qbytes;  /* octets maxi dans la file      */
    pid_t           msg_lspid;   /* PID dernier appel msgsnd(2)   */
    pid_t           msg_lrpid;   /* PID dernier appel msgrcv(2)   */
    time_t          msg_stime;   /* heure dernier appel msgsnd(2) */
    time_t          msg_rtime;   /* heure dernier appel msgrcv(2) */
    time_t          msg_ctime;   /* heure dernière modification   */
};
msg_perm
est la structure ipc_perm qui indique les permissions d'accès sur la file de messages.
msg_qnum
est le nombre de messages actuellement dans la file.
msg_qbytes
Nombre maximal d'octets pour le contenu d'un message de la file.
msg_lspid
PID du processus qui a effectué le dernier appel système msgsnd(2).
msg_lrpid
PID du processus qui a effectué le dernier appel système msgrcv(2).
msg_stime
heure du dernier appel système msgsnd(2).
msg_rtime
heure du dernier appel système msgrcv(2).
msg_ctime
heure du dernier appel système qui a modifié un membre de la structure msqid_ds.
 



Jeux de sémaphores.   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Un ensemble de sémaphores est défini par un entier positif unique (son semid) et dispose d'une structure associée de type struct semid_ds, définie dans <sys/sem.h>, qui contient les membres suivants :

struct semid_ds {
    struct ipc_perm sem_perm;
    time_t          sem_otime;  /* heure dernière opération    */
    time_t          sem_ctime;  /* heure dernière modification */
    unsigned long   sem_nsems;  /* nb sémaphores dans le jeu   */
};
sem_perm
est la structure ipc_perm qui indique les permissions d'accès sur l'ensemble de sémaphores.
sem_otime
Heure du dernier appel système semop(2).
sem_ctime
Heure du dernier appel système semctl(2), qui a modifié un membre de la structure ci-dessus ou l'état d'un sémaphore de l'ensemble.
sem_nsems
Nombre de sémaphores dans l'ensemble. Chaque sémaphore est référencé par un nombre positif ou nul dans l'intervalle 0 à sem_nsems-1.

Un sémaphore est une structure struct sem contenant les membres suivants :


struct sem {
    int semval;     /* Valeur du sémaphore                  */
    int sempid;     /* PID dernière opération               */
};
semval
Valeur du sémaphore : entier positif ou nul.
sempid
PID du dernier processus ayant effectué une opération sur le sémaphore.
 



Segments de mémoire partagée.   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Un segment de mémoire partagée est défini par un entier positif unique (son shmid) et dispose d'une structure associée de type struct shmid_ds, définie dans <sys/shm.h>, qui contient les membres suivants :

struct shmid_ds {
    struct ipc_perm shm_perm;
    size_t          shm_segsz;   /* taille segment              */
    pid_t           shm_cpid;    /* PID créateur segment        */
    pid_t           shm_lpid;    /* PID dernière opération      */
    shmatt_t        shm_nattch;  /* Nombre d'attachements       */
    time_t          shm_atime;   /* Heure dernier attachement   */
    time_t          shm_dtime;   /* Heure dernier détachement   */
    time_t          shm_ctime;   /* Heure dernière modification */
};
shm_perm
est la structure ipc_perm qui indique les permissions d'accès sur le segment de mémoire partagée.
shm_segsz
Taille en octets du segment.
shm_cpid
PID du processus ayant créé le segment.
shm_lpid
PID du processus ayant effectué le dernier appel système shmat(2) ou shmdt(2).
shm_nattch
Nombre d'attachements en cours pour ce segment.
shm_atime
Heure du dernier appel système shmat(2).
shm_dtime
Heure du dernier appel système shmdt(2).
shm_ctime
Heure du dernier appel système shmctl(2) qui a modifié la structure shmid_ds.
 



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
ipc(2), msgctl(2), msgget(2), msgrcv(2), msgsnd(2), semctl(2), semget(2), semop(2), shmat(2), shmctl(2), shmdt(2), shmget(2), ftok(3)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 18 octobre 1996 et révisée le 8 janvier 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 7 svipc ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
Autorisations d'accès aux ressources.
Files de messages.
Jeux de sémaphores.
Segments de mémoire partagée.
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
IPC_CREATAutorisations d'accès aux ressources.
IPC_EXCLAutorisations d'accès aux ressources.
IPC_NOWAITAutorisations d'accès aux ressources.
IPC_PRIVATEAutorisations d'accès aux ressources.
IPC_RMIDAutorisations d'accès aux ressources.
IPC_SETAutorisations d'accès aux ressources.
IPC_STATAutorisations d'accès aux ressources.
msg_ctimeFiles de messages.
msg_lrpidFiles de messages.
msg_lspidFiles de messages.
msg_qbytesFiles de messages.
msg_qnumFiles de messages.
msg_rtimeFiles de messages.
msg_stimeFiles de messages.
sem_ctimeJeux de sémaphores.
sem_nsemsJeux de sémaphores.
sem_otimeJeux de sémaphores.
sempidJeux de sémaphores.
semvalJeux de sémaphores.
shm_atimeSegments de mémoire partagée.
shm_cpidSegments de mémoire partagée.
shm_ctimeSegments de mémoire partagée.
shm_dtimeSegments de mémoire partagée.
shm_lpidSegments de mémoire partagée.
shm_nattchSegments de mémoire partagée.
shm_segszSegments de mémoire partagée.



Ce document a été créé par man2html suivi de man2html.pl, le 19/10/2008 07:56:03, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional