MSGCTL(2)          Manuel du programmeur Linux          MSGCTL(2)


NOM
       msgctl - Contrôler les messages.

SYNOPSIS
       # include <sys/types.h>
       # include <sys/ipc.h>
       # include <sys/msg.h>

       int msgctl ( int msqid, int  cmd, struct msqid_ds *buf )
DESCRIPTION
       Cette fonction permet d'effectuer l'opération indiquée par
       cmd sur la file de messages ayant l'identificateur  msqid.
       Les valeurs possibles de cmd sont :

       IPC_STAT    Copier  les  informations  depuis la structure
                   représentant  la  file  de  messages  dans  la
                   structure  pointée  par  buf.  L'appelant doit
                   avoir des privilèges d'accès en lecture sur la
                   file de messages.

       IPC_SET     Ecrire  la  valeurs  de  certains champs de la
                   structure msqid_ds pointée  par  buf  dans  la
                   structure représentant la file de messages, en
                   mettant à jour le champ msg_ctime.  Les champs
                   à  copier  depuis la structure struct msqid_ds
                   pointée par buf sont

                        msg_perm.uid
                        msg_perm.gid
                        msg_perm.mode /* 9 bits poids faibles */
                        msg_qbytes

                   L'UID effectif du processus appelant doit être
                   soit   celui   du  Super-User  soit  celui  du
                   créateur ou du proprietaire de la file de mes­
                   sages.   Seul  le Super-User peut augmenter la
                   valeur de msg_qbytes au-dessus de la constante
                   système MSGMNB.

       IPC_RMID    Effacer  immédiatement  la file de messages et
                   ses structures de données, en réveillant  tous
                   les   processus   écrivains   et  lecteurs  en
                   attente. Ils obtiendront un code d'erreur,  et
                   errno aura la valeur EIDRM.  L'UID effectif du
                   processus appelant doit  être  soit  celui  du
                   Super-User  soit  celui du créateur ou du pro­
                   priétaire de la file de messages.

VALEUR RENVOYÉE
       msgctl renvoie 0 s'il réussit, ou -1 s'il  échoue,  auquel
       cas errno contient le code d'erreur.





Linux                      8 Avril 1997                         1





MSGCTL(2)          Manuel du programmeur Linux          MSGCTL(2)


ERREURS
       EACCES     L'argument  cmd  réclame  l'operation  IPC_STAT
                  mais le processus appelant n'a pas  d'accès  en
                  lecture sur la file de messages msqid.

       EFAULT     L'argument  cmd  réclame l'opération IPC_SET ou
                  IPC_STAT mais buf pointe en dehors de  l'espace
                  d'adressage accessible.

       EIDRM      La file de messages a déjà été supprimée.

       EINVAL     cmd ou msqid ont une valeur illégale.

       EPERM      L'argument  cmd  réclame l'opération IPC_SET ou
                  IPC_RMID  mais  l'UID  effectif  du   processus
                  appelant  n'a  pas  assez  de  privilèges  pour
                  réaliser la commande.  C'est aussi le cas  d'un
                  processus  non  Super-User  tentant d'augmenter
                  msg_qbytes au-dessus de la valeur MSGMNB.

NOTES
       Les appels IPC_INFO, MSG_STAT et  MSG_INFO  sont  utilisés
       par le programme ipcs(8) pour fournir des informations sur
       les ressources allouées dans le futur, ceci peut être mod­
       ifié  si  besoin,  ou  remplacé  par une interface avec le
       système de fichiers proc.

CONFORMITÉ
       SVr4, SVID. SVID ne documente pas  la  condition  d'erreur
       EIDRM.

VOIR AUSSI
       ipc(5), msgget(2), msgsnd(2), msgrcv(2).


TRADUCTION
       Christophe Blaess, 1997.




















Linux                      8 Avril 1997                         2