MSGCTL
Section: Manuel du programmeur Linux (2) Updated: 18 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
NOTES
CONFORMITÉ
VOIR AUSSI
TRADUCTION
NOM
msgctl - Contrôler les messages.
SYNOPSIS
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
-
Écrire 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 suivant de la structure peuvent être mis à jour :
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 propriétaire
de la file de messages.
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 proprié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.
ERREURS
- EACCES
-
L'argument
cmd
réclame l'opération
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 modifié si besoin, ou remplacé par
une interface avec le système de fichiers proc.
Divers champs de la structure struct msqid_ds étaient des shorts sous
Linux 2.2 et sont devenus longs sous Linux 2.4. Pour en profiter, une
recompilation avec la GlibC 2.1.91 ou ultérieure devrait suffire.
(Le noyau distingue les appels anciens et nouveaux par un drapeau IPC_64 dans
cmd).
CONFORMITÉ
SVr4, SVID. SVID ne documente pas la condition d'erreur EIDRM.
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|
|