MQ_GETATTR

Section : Manuel du programmeur Linux (3)
Mise à jour de la version anglaise : 25 février 2006
Index Menu principal  

NOM

mq_getattr, mq_setattr - Obtenir/définir les attributs d'une file de messages  

SYNOPSIS

#include <mqueue.h>

mqd_t mq_getattr(mqd_t mqdes, struct mq_attr *attr);

mqd_t mq_setattr(mqd_t mqdes, struct mq_attr *newattr,
                 struct mq_attr *oldattr);

Utilisez -lrt à l'édition de liens  

DESCRIPTION

mq_getattr() et mq_setattr() récupère et modifie, respectivement, les attributs d'une file de messages référencée par le descripteur mqdes.

mq_getattr() renvoie une structure mq_attr dans le tampon pointé par attr. La structure est définie ainsi :


struct mq_attr {
    long mq_flags;       /* Attributs : 0 ou O_NONBLOCK */
    long mq_maxmsg;      /* Nombre maximum de messages dans la file */
    long mq_msgsize;     /* Taille maximum des messages (octets) */
    long mq_curmsgs;     /* Nombre de messages actuellement dans la file */
};

Le champ mq_flags contient les attributs associés à la description de la file de messages ouverte. Ce champ est initialisé à la création de la file avec mq_open(3). Le seul attribut qui peut apparaître dans ce champ est O_NONBLOCK.

Les champs mq_maxmsg et mq_msgsize sont remplis lorsque la file de messages est créée par mq_open(3). Le champ mq_maxmsg est le nombre maximum de messages qui peuvent être placés dans la file avec mq_send(3). Le champ mq_msgsize est la taille maximum des messages qui peuvent être placés dans la file. Ces deux champs doivent avoir une valeur supérieure à zéro. Deux fichiers de /proc qui plafonnent ces valeurs de champs sont décrits dans mq_open(3).

Le champ mq_curmsgs renvoie le nombre de messages actuellement dans la file.

mq_setattr() définit les attributs de la file de messages en utilisant les informations fournies par la structure mq_attr pointée par newattr. Le seul attribut qui puisse être modifié est l'attribut O_NONBLOCK de mq_flags. Les autres champs de newattr sont ignorés. Si le champ oldattr n'est pas NULL, le tampon sur lequel il pointe est utilisé pour renvoyer une structure mq_attr contenant les mêmes informations renvoyées par mq_getattr().  

VALEUR RENVOYÉE

Si elles réussissent, mq_getattr() et mq_setattr() renvoient 0 ; si elles échouent, elles renvoient -1 et renseignent errno en conséquence.  

ERREURS

EBADF
Le descripteur spécifié dans mqdes n'est pas valide.
EINVAL
newattr->mq_flags contient des bits définis autres que O_NONBLOCK.
 

CONFORMITÉ

POSIX.1-2001.  

VOIR AUSSI

mq_close(3), mq_notify(3), mq_open(3), mq_receive(3), mq_send(3), mq_unlink(3), mq_overview(7)  

TRADUCTION

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 23 juillet 2006 et révisée le 17 juillet 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 3 mq_getattr ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.

 

Index

NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
VOIR AUSSI
TRADUCTION

Dernière mise à jour : 17 juillet 2008