03-01-2006
Do you want shared memory without any system calls? Cannot be done.
You can use pipes, names pipes, or files to do that. But opening a file requires kernel access as well. So does printing to the screen. So what you're asking doesn't make any sense to me at the moment. Basically, you can think of any compiled C program as an interface to system and kernel calls.
??
10 More Discussions You Might Find Interesting
1. Programming
Dear Reader,
Is is necessary to attach / dettach the shared memory segments for write operations , if more than one program is accessing same shared memory segments..
I have used semaphore mutex and still I'm getting segmentation fault when I write to the segment when other program is already... (1 Reply)
Discussion started by: joseph_shibu
1 Replies
2. 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
3. Linux
Hi all :confused: ,
I am new to unix.I have been asked to implement shared memory in user's mode.What does this mean?What is the difference it makes in kernel mode and in users mode?What are the advantages of this impemenation(user's mode)?
And also i would like to know why exactly shared... (0 Replies)
Discussion started by: vijaya2006
0 Replies
4. Programming
what i want to do is have an int that can been written into by 2 processes but my code doesn't seem to work.
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include<stdio.h>
#define KEY1 (1492)
int main()
{
int shmid;
volatile int * addr;... (6 Replies)
Discussion started by: ddx08
6 Replies
5. Programming
hi,
this is the problem: i want to swap a linked list between 4 processes (unrelated), is there any way i can do that just by sending a pointer to a structure?
//example
typedef struct node
{
int x;
char c;
struct node *next;
} node;
or i should send the items ( x,c ) by... (9 Replies)
Discussion started by: elzalem
9 Replies
6. 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
7. UNIX for Dummies Questions & Answers
Hi all, I'm trying to test my concepts of how shared memory works and how to access it.
So I've got a basic program that sets up a structure and shared memory segment and then tries to write / read to the shared memory segment from two different processes by doing a fork...
This is my code:
... (0 Replies)
Discussion started by: Dreams in Blue
0 Replies
8. 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
9. AIX
1.How to know wich process is using the shared memory?
2.How to flush (release) the process from the shared memory? (1 Reply)
Discussion started by: pchangba
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
LEARN ABOUT PHP
shmop_open
SHMOP_OPEN(3) 1 SHMOP_OPEN(3)
shmop_open - Create or open shared memory block
SYNOPSIS
int shmop_open (int $key, string $flags, int $mode, int $size)
DESCRIPTION
shmop_open(3) can create or open a shared memory block.
PARAMETERS
o $key
- System's id for the shared memory block. Can be passed as a decimal or hex.
o $flags
- The flags that you can use:
o "a" for access (sets SHM_RDONLY for shmat) use this flag when you need to open an existing shared memory segment for read
only
o "c" for create (sets IPC_CREATE) use this flag when you need to create a new shared memory segment or if a segment with the
same key exists, try to open it for read and write
o "w" for read & write access use this flag when you need to read and write to a shared memory segment, use this flag in most
cases.
o "n" create a new memory segment (sets IPC_CREATE|IPC_EXCL) use this flag when you want to create a new shared memory seg-
ment but if one already exists with the same flag, fail. This is useful for security purposes, using this you can prevent
race condition exploits.
o $mode
- The permissions that you wish to assign to your memory segment, those are the same as permission for a file. Permissions need to
be passed in octal form, like for example 0644
o $size
- The size of the shared memory block you wish to create in bytes
Note
Note: the 3rd and 4th should be entered as 0 if you are opening an existing memory segment.
RETURN VALUES
On success shmop_open(3) will return an id that you can use to access the shared memory segment you've created. FALSE is returned on
failure.
EXAMPLES
Example #1
Create a new shared memory block
<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>
This example opened a shared memory block with a system id returned by ftok(3).
SEE ALSO
shmop_close(3), shmop_delete(3).
PHP Documentation Group SHMOP_OPEN(3)