MQ_GETATTR(3)

NOM
mq_getattr, mq_setattr - Lire et écrire les attributs d'une file de messages

SYNOPSIS
#include <mqueue.h>

int mq_getattr(mqd_t mqdes, struct mq_attr *attr);
int mq_setattr(mqd_t mqdes, const struct mq_attr *newattr,
                 struct mq_attr *oldattr);

Effectuez l'édition des liens avec l'option -lrt.

DESCRIPTION
Les fonctions mq_getattr() et mq_setattr() extraient et modifient les attributs de la file de messages référencée par le descripteur mqdes. mq_getattr() renvoie une structure mq_attr dans le tampon pointé par attr. Cette structure est définie comme suit :
struct mq_attr {
    long mq_flags;       /* Drapeaux : 0 or O_NONBLOCK */
    long mq_maxmsg;      /* Max. # de messages dans la file */
    long mq_msgsize;     /* Max de la taille du message (octets) */
    long mq_curmsgs;     /* # de messages actuellement dans la file */
};

Le champ mq_flags contient des drapeaux associés à la description de la file de messages ouverte. Ce champ est initialisé lorsque la file est créée avec mq_open(3). Le seul drapeau qui peut apparaître dans ce champ est O_NONBLOCK. Les champs mq_maxmsg et mq_msgsize sont définis lorsque la file de messages est créée avec mq_open(3). Le champ mq_maxmsg est le nombre maximal de messages qui peuvent être placés dans la file avec mq_send(3). Le champ mq_msgsize est la taille maximale des messages qui peuvent être placés dans la file. Chacun de ces champs doit avoir une valeur supérieure à zéro. Deux fichiers de /proc qui plafonnent ces valeurs pour ces champs sont décrites 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 avec les informations fournies par la structure mq_attr pointée par newattr. Le seul attribut qui peut être modifié est le drapeau O_NONBLOCK de mq_flags. Les autres champs de newattr sont ignorés. Si le champ oldattr est non NULL, alors le tampon qu'il pointe est utilisé pour renvoyer une structure mq_attr contenant les mêmes informations que la fonction mq_getattr() renverrait.

VALEUR RENVOYÉE
En cas de succès, mq_getattr() et mq_setattr() renvoient 0. En cas d'erreur, elles renvoient -1 et définissent errno en conséquence.

ERREURS

EBADF
    Le descripteur spécifié dans mqdes n'est pas valable.

EINVAL
    newattr->mq_flags contient des bits définis autres que O_NONBLOCK.

ATTRIBUTS

  Multithreading (voir pthreads(7))
Les fonctions mq_getattr() et mq_setattr() sont sûres dans un contexte multithread.

CONFORMITÉ
POSIX.1-2001.

NOTES
Sous Linux, mq_getattr() et mq_setattr() sont des fonctions de bibliothèque au dessus de l'appel système mq_getsetattr(2).

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

COLOPHON
Cette page fait partie de la publication 3.70 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

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

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».