11-25-2008
mmap PROT_READ and PROT_WRITE I think would probably work for what you want to do
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
I am running HP-UX B.11.11.
I'm increasing a parameter for a database engine so that it uses more memory to buffer the disk drive (to speed up performance). I have over 5GB of memory not being used.
But when I try to start the DB with the increased buffer parameter I get told.
"Not... (1 Reply)
Discussion started by: cjcamaro
1 Replies
2. HP-UX
Hello....
AIX has a limit of 11 shared memory segments per process, does any one know how many HP have?? If so how do I find that out??
Thanks in advance...... (2 Replies)
Discussion started by: catwomen
2 Replies
3. Programming
I need to create a shared library to access an in memory DB. The DB is not huge, but big enough to make it cumbersome to carry around in every single process using the shared library. Luckily, it is pretty static information, so I don't need to worry much about synchronizing the data between... (12 Replies)
Discussion started by: DreamWarrior
12 Replies
4. HP-UX
I am fairly new to HP-UX and trying to get a better understanding of the operating system. While poking around a bit I find myself questioning whether I should be concerned about Shared Memory segments with missing CPID and LPID? For example:
ipcs -mp
IPC status from /dev/kmem as of Mon Mar... (2 Replies)
Discussion started by: scotbuff
2 Replies
5. Programming
I am looking for C program source code. Could you please help me in finding the source code required mentioned below.
program to create multiple threads (one master thread and rest worker threads) and using the threads write into and read from shared memory
Restrictions:
Only one thread... (2 Replies)
Discussion started by: kumars
2 Replies
6. Programming
I am writing a shared library in Linux (but compatible with other UNIXes) and I want to allow multiple instances to share a piece of memory -- 1 byte is enough. What's the "best" way to do this? I want to optimize for speed and portability.
Obviously, I'll have to worry about mutual exclusion. (0 Replies)
Discussion started by: otheus
0 Replies
7. Programming
Can someone tell me how many bytes are allocated for C segments(text,data,heap,stack). (3 Replies)
Discussion started by: nandumishra
3 Replies
8. Programming
I created a shared memory and attached it. I also created the appropriate semaphores to sync. my read/write operations. However I do not know how am I supposed to do so. Anyone has got any ideas? I want to write int the form of 1234:23:444:... where each number between : means something to the... (0 Replies)
Discussion started by: tyron
0 Replies
9. UNIX for Dummies Questions & Answers
I have created and attached a shared memory segment. However I do not know how am I supposed to write and read data from it. I want to save various different data on this segment such as process IDs and other. Do you know how am I supposed to write these and be able to read such data in the correct... (1 Reply)
Discussion started by: tyron
1 Replies
10. Programming
Hello.
I am new to this forum and I would like to ask for advice about low level POSIX programming.
I have to implement a POSIX compliant C shared library.
A file will have some variables and the shared library will have some functions which need those variables.
There is one special... (5 Replies)
Discussion started by: iamjag
5 Replies
shmop(2) System Calls Manual shmop(2)
Name
shmop, shmat, shmdt - shared memory operations
Syntax
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
char *shmat (shmid, shmaddr, shmflg)
int shmid;
char *shmaddr;
int shmflg;
int shmdt (shmaddr)
char *shmaddr;
Description
The system call attaches the shared memory segment associated with the shared memory identifier specified by shmid to the data segment of
the calling process. The segment is attached at the address specified by one of the following criteria:
If shmaddr is equal to zero, the segment is attached at the first available address as selected by the system.
If shmaddr is not equal to zero and (shmflg & SHM_RND ) is true, the segment is attached at the address given by (shmaddr- (shmaddr modulus
SHMLBA )).
If shmaddr is not equal to zero and (shmflg & SHM_RND ) is false, the segment is attached at the address given by shmaddr.
The segment is attached for reading if (shmflg & SHM_RDONLY ) is true. Otherwise, it is attached for reading and writing.
The system call detaches from the calling process's data segment the shared memory segment located at the address specified by shmaddr.
Return Values
Upon successful completion, the return values are as follows:
o The system call returns the data segment start address of the attached shared memory segment.
o The system call returns a value of zero (0).
Otherwise, a value of -1 is returned, and errno is set to indicate the error.
Diagnostics
The system call fails and not attach the shared memory segment, if any of the following is true:
[EINVAL] The shmid is not a valid shared memory identifier.
[EACCES] Operation permission is denied to the calling process. For further information, see
[ENOMEM] The available data space is not large enough to accommodate the shared memory segment.
[EINVAL] The shmaddr is not equal to zero, and the value of (shmaddr- (shmaddr modulus SHMLBA )) is an illegal address.
[EINVAL] The shmaddr is not equal to zero, (shmflg & SHM_RND ) is false, and the value of shmaddr is an illegal address.
[EMFILE] The number of shared memory segments attached to the calling process would exceed the system imposed limit.
The fails and does not detach the shared memory segment if:
[EINVAL] The shmaddr is not the data segment start address of a shared memory segment.
See Also
execve(2), exit(2), fork(2), shmctl(2), shmget(2)
shmop(2)