04-27-2006
I'm beginning to see why you keep mentioning shared memory and mmap(). It is looking to me like mq_open is creating a file system object (in the current directory?). Could the message be literally accurate? Are you out of disk space?
10 More Discussions You Might Find Interesting
1. Programming
How can I increase the POSIX Msg Q parameter SC_MQ_PRIO_MAX? The maximum is defined as 32. Can I increase the number? If so, how?
Deepa (0 Replies)
Discussion started by: Deepa
0 Replies
2. UNIX for Dummies Questions & Answers
What are the differences/similarities between posix and system V ipc and their mechanisms?
also, why is system v only limited to inter-process communication on a single node?
thanks (0 Replies)
Discussion started by: jsimpson
0 Replies
3. Linux
Hi all,
Please tell me how to change POSIX message queue maximum size? "ulimit" is not a solution because it controls shell resources. But i need to control queue size before login in and starting the shell. It is needed to limit queue size for applications started before login in.
Sorry for my... (7 Replies)
Discussion started by: Vourhey
7 Replies
4. 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
5. Programming
Hi,
I´m having a lot of problems when working with message queues, both on HP-UX Systems and Sun Solaris. When we fill a queue with a messages, the system hangs and locks everything that relies on the use of IPC resources. Anyone knows how to eliminate this problem?
Thanks,
Haroldo Teixeira (2 Replies)
Discussion started by: haroldo
2 Replies
6. UNIX for Dummies Questions & Answers
Hi everybody,
this is the situation. there is a programm XYZ which opens a message queue with the key 47110815 and waits for a SIGUSR1. After receiving this signal it sends a message with type 100 and a number (as ASCII) in the message-body.
I have to write a prog which frist sends the... (1 Reply)
Discussion started by: daredevil82m
1 Replies
7. Programming
I want to have a message send & receive through 2 uni-direction FIFO
Flow of data
FIFO1
stdin--->parent(client) writefd--->FIFO1-->child(server) readfd
FIFO2
child(server) writefd2---->FIFO2--->parent(client) readfd2--->stdout
I need to have boundary structed message... (3 Replies)
Discussion started by: ouou
3 Replies
8. Programming
in a single main() function,so need signal handling. Use Posix Message Queue IPC mechanism , can ignore the priority and other linked list message,to implement the scenario:
client:Knock Knock
server:who's there
client: Eric
Server:Eric,Welcome.
client:exit
all process terminated
... (1 Reply)
Discussion started by: ouou
1 Replies
9. Programming
Hi,
I wanted to know whether the POSIX message queues are statically allocated memory by the kernel based on the parameters specified in the open or as and when we send messages, memory are allocated?
Does the kernel reserve the specified memory for the message queue irrespective of whether... (1 Reply)
Discussion started by: sumtata
1 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 POSIX
shm_overview
SHM_OVERVIEW(7) Linux Programmer's Manual SHM_OVERVIEW(7)
NAME
shm_overview - overview of POSIX shared memory
DESCRIPTION
The POSIX shared memory API allows processes to communicate information by sharing a region of memory.
The interfaces employed in the API are:
shm_open(3) Create and open a new object, or open an existing object. This is analogous to open(2). The call returns a file descriptor
for use by the other interfaces listed below.
ftruncate(2) Set the size of the shared memory object. (A newly created shared memory object has a length of zero.)
mmap(2) Map the shared memory object into the virtual address space of the calling process.
munmap(2) Unmap the shared memory object from the virtual address space of the calling process.
shm_unlink(3) Remove a shared memory object name.
close(2) Close the file descriptor allocated by shm_open(3) when it is no longer needed.
fstat(2) Obtain a stat structure that describes the shared memory object. Among the information returned by this call are the
object's size (st_size), permissions (st_mode), owner (st_uid), and group (st_gid).
fchown(2) To change the ownership of a shared memory object.
fchmod(2) To change the permissions of a shared memory object.
Versions
POSIX shared memory is supported since Linux 2.4 and glibc 2.2.
Persistence
POSIX shared memory objects have kernel persistence: a shared memory object will exist until the system is shut down, or until all pro-
cesses have unmapped the object and it has been deleted with shm_unlink(3)
Linking
Programs using the POSIX shared memory API must be compiled with cc -lrt to link against the real-time library, librt.
Accessing shared memory objects via the filesystem
On Linux, shared memory objects are created in a (tmpfs(5)) virtual filesystem, normally mounted under /dev/shm. Since kernel 2.6.19,
Linux supports the use of access control lists (ACLs) to control the permissions of objects in the virtual filesystem.
NOTES
Typically, processes must synchronize their access to a shared memory object, using, for example, POSIX semaphores.
System V shared memory (shmget(2), shmop(2), etc.) is an older shared memory API. POSIX shared memory provides a simpler, and better
designed interface; on the other hand POSIX shared memory is somewhat less widely available (especially on older systems) than System V
shared memory.
SEE ALSO
fchmod(2), fchown(2), fstat(2), ftruncate(2), mmap(2), mprotect(2), munmap(2), shmget(2), shmop(2), shm_open(3), shm_unlink(3), sem_over-
view(7)
COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the
latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
Linux 2016-12-12 SHM_OVERVIEW(7)