11-10-2010
Either name or attr points to an address outside the current process memory space. Please check that name correctly points to the correct string, resp. attr to a correct mq_attr structure.
Eventually, post how you're calling mq_open()
HTH,
Loïc
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi,
I am working closly with unix message queues i have encountered the following -
after creating the Q and start working with it (pushing & pulling) i receive the following stange parameters on the q's -
STIME=no_entry
Qnum=0
CBYTES=4140
when this happens, the Q is disabled (meaning i... (3 Replies)
Discussion started by: kel
3 Replies
2. HP-UX
Hello,
J work on a HP.
I want to create message queue by using mq_open with this parameters:
mq_open(p,O_CREAT|O_WRONLY|O_EXCL|0_NONBLOCK,0600,&queue_attr)
with p char
and the function returns the value -1 and errno equal 2.
can you help me ?
Thank. (3 Replies)
Discussion started by: AUBERT
3 Replies
3. Programming
hi all...
ive been trying this program where i spawn 4 threads... and i am trying to use message queue to send msgs from 3 of the threads to the parent thread... but it doent seem to be working... ive almost pulled out my hair tryin to fix the prob :confused:
another wierd thing... (1 Reply)
Discussion started by: strider
1 Replies
4. Programming
Hello,
i need to write a message queue "chat server", that should work only localy.
Can anyone please help me with some ideas and peshaps code. I'm studying the UNIX IPC mechanisms right now. So far, i understand how it works but i still cannot get an idea how to write a chat programm...
... (2 Replies)
Discussion started by: etenv
2 Replies
5. Programming
hello,
I had to implement a message queue application....between 30 processes......
all 30 proceses are getting data from serial port....
And here is THE FLOW::::::::1 connector process...which is linked with message queue to all the 30 applications. Processes get the data from serial port and... (9 Replies)
Discussion started by: arunchaudhary19
9 Replies
6. Programming
Hii can anyone pls tell how to limit the max no of message in a posix message queue. I have made changes in proc/sys/fs/mqueue/msg_max
But still whenever i try to read the value of max. message in the queue using attr.mq_curmsgs (where struct mq_attr attr) its giving the default value as 10.... (0 Replies)
Discussion started by: mohit3884
0 Replies
7. Programming
Hello !!!!! I have a simple question but i can't find the answer anywhere hope to meet it here.
Why it is a bad idea to pass pointers through message queues ?
Most structs i see all of their char types are arrays... Is it becase having pointers means we could possibily send wrong bytes ?
For... (2 Replies)
Discussion started by: qlyine
2 Replies
8. Ubuntu
Hello
How can I see the created message queues in the system? (4 Replies)
Discussion started by: xyzt
4 Replies
9. Programming
Hi guys.
i have wrote a simple program to test message queue attributes. here it is:
#include <stdio.h>
#include <stdlib.h>
#include <mqueue.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
#include <sys/stat.h>
int main()
{
struct mq_attr attr;
mqd_t mqd;
... (2 Replies)
Discussion started by: majid.merkava
2 Replies
10. Programming
hello, I try to test the POSIX mq_open function on book unp like below:
#include "unpipc.h"
# include <mqueue.h>
int main(int argc, char **argv)
{
int c, flags;
mqd_t mqd;
flags = O_RDWR | O_CREAT;
while ((c = getopt(argc, argv, "e")) != -1) {
... (3 Replies)
Discussion started by: anpufeng
3 Replies
LEARN ABOUT LINUX
mq_setattr
MQ_GETATTR(3) Linux Programmer's Manual MQ_GETATTR(3)
NAME
mq_getattr, mq_setattr - get/set message queue attributes
SYNOPSIS
#include <mqueue.h>
int mq_getattr(mqd_t mqdes, struct mq_attr *attr);
int mq_setattr(mqd_t mqdes, struct mq_attr *newattr,
struct mq_attr *oldattr);
Link with -lrt.
DESCRIPTION
mq_getattr() and mq_setattr() respectively retrieve and modify attributes of the message queue referred to by the descriptor mqdes.
mq_getattr() returns an mq_attr structure in the buffer pointed by attr. This structure is defined as:
struct mq_attr {
long mq_flags; /* Flags: 0 or O_NONBLOCK */
long mq_maxmsg; /* Max. # of messages on queue */
long mq_msgsize; /* Max. message size (bytes) */
long mq_curmsgs; /* # of messages currently in queue */
};
The mq_flags field contains flags associated with the open message queue description. This field is initialized when the queue is created
by mq_open(3). The only flag that can appear in this field is O_NONBLOCK.
The mq_maxmsg and mq_msgsize fields are set when the message queue is created by mq_open(3). The mq_maxmsg field is an upper limit on the
number of messages that may be placed on the queue using mq_send(3). The mq_msgsize field is an upper limit on the size of messages that
may be placed on the queue. Both of these fields must have a value greater than zero. Two /proc files that place ceilings on the values
for these fields are described in mq_open(3).
The mq_curmsgs field returns the number of messages currently held in the queue.
mq_setattr() sets message queue attributes using information supplied in the mq_attr structure pointed to by newattr. The only attribute
that can be modified is the setting of the O_NONBLOCK flag in mq_flags. The other fields in newattr are ignored. If the oldattr field is
not NULL, then the buffer that it points to is used to return an mq_attr structure that contains the same information that is returned by
mq_getattr().
RETURN VALUE
On success mq_getattr() and mq_setattr() return 0; on error, -1 is returned, with errno set to indicate the error.
ERRORS
EBADF The descriptor specified in mqdes is invalid.
EINVAL newattr->mq_flags contained set bits other than O_NONBLOCK.
CONFORMING TO
POSIX.1-2001.
NOTES
On Linux, mq_getattr() and mq_setattr() are library functions layered on top of the mq_getsetattr(2) system call.
SEE ALSO
mq_close(3), mq_notify(3), mq_open(3), mq_receive(3), mq_send(3), mq_unlink(3), mq_overview(7)
COLOPHON
This page is part of release 3.27 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2010-08-29 MQ_GETATTR(3)