![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Shared memory in shared library | DreamWarrior | High Level Programming | 12 | 05-30-2007 01:33 PM |
| all about shared memory | vijaya2006 | Linux | 0 | 02-28-2006 01:14 AM |
| mmap vs shared memory - which is best for sharing data between applications? | nmds | UNIX for Advanced & Expert Users | 2 | 02-21-2005 03:45 PM |
| Shared memory shortage but lots of unused memory | cjcamaro | UNIX for Advanced & Expert Users | 1 | 10-13-2004 02:10 PM |
| Shared Memory | Jayathirtha | UNIX for Advanced & Expert Users | 3 | 03-03-2003 09:30 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Display Modes |
|
#1
|
||||
|
||||
|
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? Code:
//example
typedef struct node
{
int x;
char c;
struct node *next;
} node;
my solution: create the list in a shared location in memory, where all the processes can use the same reference to manipulate or read the list, but if i use malloc(); i can't control the physical place where the memory is allocated (that's what i know) any help guys is appreciated, thanks |
| Forum Sponsor | ||
|
|
|
#2
|
|||
|
|||
|
hi elzalem,
there is no such think like a memory location since mem may be swaped out or what ever. The solution depends on your requierements. You can use a file in shared mem, the most simple solution. of if not possible use a 'server task' that handles requests into the data structure |
|
#3
|
||||
|
||||
|
I was hoping to be able to find a solution similar to the threads where all the processes share all the variables... |
|
#4
|
|||
|
|||
|
Quote:
Look at mmap(MAP_SHARED|MAP_FIXED) |
|
#5
|
||||
|
||||
|
i have 2 linked lists that are constantly growing or shrinking, both r visible to all processes, i don't want each process to have a copy, i hope you're understanding what i mean.
without "shared memory" is it possible? |
|
#6
|
|||
|
|||
|
Quote:
You can share it in memory or have another server process that contains the list and all other processes use some form of IPC or RPC to access. You can't share something by not sharing it. Last edited by porter; 05-01-2007 at 03:26 PM. |
|
#7
|
||||
|
||||
|
Quote:
p1 and p2 are 2 processes, in p1: int *var=malloc(sizeof(int)); send var to p2 (the address not the value) in p2: *var = 4; // normaly that'll give an error I need to allow p2 to gain access to all the memory space of p1. i can simply put em in a shared memory, but i was trying to find a substitute! |
||||
| Google The UNIX and Linux Forums |