Provided by: manpages-fr_3.32d0.2p4-1_all bug

NOM

       svipc - Mecanismes System V de communication entre processus

SYNOPSIS

       #include <sys/types.h>
       #include <sys/ipc.h>
       #include <sys/msg.h>
       #include <sys/sem.h>
       #include <sys/shm.h>

DESCRIPTION

       Cette   page  de  manuel  documente  l'implementation  sous  Linux  des
       mecanismes   System V   de   communication   entre   processus   (IPC :
       << InterProcess   Communication >>) :   les   files  de  messages,  les
       ensembles de semaphores, et les segments de memoire  partagee.  Par  la
       suite, le mot ressource se rapportera a l'un de ces mecanismes.

   Autorisations d'acc`es aux ressources.
       Pour  chaque  ressource,  le  systeme utilise une structure commune, de
       type struct ipc_perm, pour enregistrer les informations  permettant  de
       determiner   les   autorisations  concernant  les  operations  IPC.  La
       structure  ipc_perm,  definie  dans  le  fichier   d'en-tetes   systeme
       <sys/ipc.h> comporte les membres suivants :

           struct ipc_perm {
               uid_t          cuid;   /* UID du createur */
               gid_t          cgid;   /* GID du createur */
               uid_t          uid;    /* UID du proprietaire */
               gid_t          gid;    /* GID du proprietaire */
               unsigned short mode;   /* autorisations l/e */
           };

       Le  membre  mode  de  la  structure ipc_perm definit, sur ses 9 bits de
       poids  faibles,  les  permissions  d'acces  a  la  ressource,  pour  un
       processus  effectuant  un  appel  systeme  IPC.  Les  permissions  sont
       interpretees ainsi (nombres en octal) :

           0400    Lecture par le proprietaire.
           0200    Ecriture par le proprietaire.
           0040    Lecture par le groupe.
           0020    Ecriture par le groupe.
           0004    Lecture par les autres.
           0002    Ecriture par les autres.

       Les bits 0100, 0010 et 0001 (bits execution) ne sont pas  utilises  par
       ces   appels  systeme.  De  plus,  << ecriture >>  a  la  signification
       << modification >> pour un ensemble de semaphores.

       Le meme fichier d'en-tete definit egalement les constantes  symboliques
       suivantes :

       IPC_CREAT     Creer une entree si la cle n'existe pas.

       IPC_EXCL      Echouer si la cle existe.

       IPC_NOWAIT    Retourner   eventuellement   une   erreur,  mais  ne  pas
                     attendre.

       IPC_PRIVATE   Cle privee.

       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  champs d'indicateurs qui peuvent etre regroupes
       avec un OU logique dans une variable de type int.

   Files de messages
       Une file de message est definie de maniere unique par un entier positif
       (son  msqid)  et  dispose  d'une  structure  associee  de  type  struct
       msqid_ds, definie 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 du dernier appel a msgsnd(2) */
               pid_t           msg_lrpid;   /* PID du dernier appel a msgrcv(2) */
               time_t          msg_stime;   /* heure du dernier appel a msgsnd(2) */
               time_t          msg_rtime;   /* heure du dernier appel a msgrcv(2) */
               time_t          msg_ctime;   /* heure de derniere modification */
           };

       msg_perm   Structure ipc_perm qui indique les permissions  d'acces  sur
                  la file de messages.

       msg_qnum   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 effectue  le  dernier  appel  systeme
                  msgsnd(2).

       msg_lrpid  PID  du  processus  qui  a effectue le dernier appel systeme
                  msgrcv(2).

       msg_stime  Heure du dernier appel systeme msgsnd(2).

       msg_rtime  Heure du dernier appel systeme msgrcv(2).

       msg_ctime  Heure du dernier appel systeme qui a modifie un membre de la
                  structure msqid_ds.

   Jeux de s'emaphores.
       Un  ensemble  de  semaphores est defini de maniere unique par un entier
       positif (son semid) et dispose d'une structure associee de type  struct
       semid_ds, definie dans <sys/sem.h>, qui contient les membres suivants :

           struct semid_ds {
               struct ipc_perm sem_perm;
               time_t          sem_otime;   /* heure derniere operation */
               time_t          sem_ctime;   /* heure derniere modification */
               unsigned long   sem_nsems;   /* nb semaphores dans le jeu */
           };

       sem_perm   Structure  ipc_perm  qui indique les permissions d'acces sur
                  l'ensemble de semaphores.

       sem_otime  Heure du dernier appel systeme semop(2).

       sem_ctime  Heure du dernier appel systeme semctl(2), qui a  modifie  un
                  membre de la structure ci-dessus ou l'etat d'un semaphore de
                  l'ensemble.

       sem_nsems  Nombre de semaphores dans l'ensemble. Chaque  semaphore  est
                  reference par un nombre positif ou nul dans l'intervalle 0 a
                  sem_nsems-1.

       Un semaphore est une structure de donnees de type struct sem  contenant
       les membres suivants :

           struct sem {
               int semval;  /* valeur du semaphore */
               int sempid;  /* PID de la derniere operation */
           };

       semval     Valeur du semaphore : entier positif ou nul.

       sempid     PID du dernier processus ayant effectue une operation sur le
                  semaphore.

   Segments de m'emoire partag'ee.
       Un segment de memoire partagee est defini  de  maniere  unique  par  un
       entier  positif (son shmid) et dispose d'une structure associee de type
       struct shmid_ds, definie 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 du createur */
               pid_t           shm_lpid;    /* PID, derniere operation */
               shmatt_t        shm_nattch;  /* nombre d'attachements */
               time_t          shm_atime;   /* heure dernier attachement */
               time_t          shm_dtime;   /* heure dernier detachement */
               time_t          shm_ctime;   /* heure derniere modification */
           };

       shm_perm   Structure  ipc_perm  qui indique les permissions d'acces sur
                  le segment de memoire partagee.

       shm_segsz  Taille en octets du segment.

       shm_cpid   PID du processus ayant cree le segment.

       shm_lpid   PID du processus ayant effectue  le  dernier  appel  systeme
                  shmat(2) ou shmdt(2).

       shm_nattch Nombre d'attachements en cours pour ce segment.

       shm_atime  Heure du dernier appel systeme shmat(2).

       shm_dtime  Heure du dernier appel systeme shmdt(2).

       shm_ctime  Heure  du  dernier  appel systeme shmctl(2) qui a modifie la
                  structure shmid_ds.

VOIR AUSSI

       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)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).    Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.