MQ_SETATTR(3P)

πŸ’– MQ_SETATTR(3P) β€” the POSIX Programmer's Manual girlie πŸ’–

okay bestie, quick heads up before we dive in: this is a page from the POSIX Programmer's Manual. The Linux implementation of this interface may differ (so like, go check the corresponding Linux manual page for the deets on Linux behavior), or honestly the interface might not even be implemented on Linux at all. πŸ™ˆ


✨ NAME ✨

mq_setattr β€” set message queue attributes (REALTIME)


πŸŽ€ SYNOPSIS πŸŽ€

#include <mqueue.h>

int mq_setattr(mqd_t mqdes, const struct mq_attr *restrict mqstat,
    struct mq_attr *restrict omqstat);

πŸ¦‹ DESCRIPTION πŸ¦‹

So mq_setattr() sets the attributes tied to the open message queue description that's referenced by the message queue descriptor you pass in as mqdes. Slay.

The message queue attributes that correspond to the following members defined in the mq_attr structure get set to the specified values once mq_setattr() completes successfully:

  • mq_flags β€” the value of this member is the bitwise-logical OR of zero or more of O_NONBLOCK and any implementation-defined flags. That's it, that's the whole vibe check.

Lowkey important: the values of the mq_maxmsg, mq_msgsize, and mq_curmsgs members of the mq_attr structure are ignored by mq_setattr(). Not their moment, not their era. πŸ’…

If omqstat is non-NULL, then mq_setattr() stores β€” in the location referenced by omqstat β€” the previous message queue attributes and the current queue status. These values are the same as what a call to mq_getattr() would return at that point. Consistency icon. πŸ‘‘


πŸ”₯ RETURN VALUE πŸ”₯

Upon successful completion, the function returns a value of zero and the attributes of the message queue have been changed as specified. Periodt.

Otherwise (😭), the message queue attributes stay unchanged, and the function returns a value of -1 and sets errno to indicate the error.


πŸ’€ ERRORS πŸ’€

The mq_setattr() function fails if:

  • EBADF β€” the mqdes argument is not a valid message queue descriptor. bestie that's not a real queue, sorry.
ngl the following sections are informative. Read them for the lore, not the law. ✨

🌸 EXAMPLES 🌸

None. (Not me showing up to class with no examples πŸ’€)


🫢 APPLICATION USAGE 🫢

None. (We simply didn't have anything to add, and that's fine.)


🌈 RATIONALE 🌈

None. (Iconic silence, honestly.)


⭐ FUTURE DIRECTIONS ⭐

None. (The future is bright but unspecified.)


πŸ‘‘ SEE ALSO πŸ‘‘

mq_open(), mq_send(), msgctl(), msgget(), msgrcv(), msgsnd()

The Base Definitions volume of POSIX.1‐2017, <mqueue.h>


Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html .

Any typographical or formatting errors that appear in this page are most likely to have been introduced during the conversion of the source files to man page format. To report such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .


and that's the whole page, bestie ✨ this absolute banger of a manual page is brought to you by IEEE/The Open Group, dated 2017, and it lives at MQ_SETATTR(3P) β€” go set some attributes, you've got this πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from