Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
FORUM LINUX FAQ LINUX TUTORIELS LINUX LIVRES LINUX LINUX TV UNIX GTK+ Qt APACHE

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

#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
É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

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

TRADUCTION

Christophe Blaess, 1996-2003.
Responsable bénévole de la rubrique Linux Professionnel : Olivier Van Hoof - Contacter par EMail :
Vos questions techniques : forum d'entraide Linux Professionnel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.