![]() |
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Shared memory in shared library | DreamWarrior | High Level Programming | 12 | 05-30-2007 05:33 PM |
| memory sharing - not shared memory - | elzalem | High Level Programming | 9 | 05-02-2007 08:45 AM |
| Shared memory shortage but lots of unused memory | cjcamaro | UNIX for Advanced & Expert Users | 1 | 10-13-2004 06:10 PM |
| Shared Memory | Jayathirtha | UNIX for Advanced & Expert Users | 3 | 03-03-2003 12:30 PM |
| Shared memory | joseph_shibu | High Level Programming | 1 | 10-24-2001 09:44 PM |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
help with shared memory
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.
Code:
#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;
pid_t pid1;
shmid=shmget(KEY1,4*1,SHM_R|SHM_W);
addr=shmat(shmid,0,4);
addr=0;
pid1=fork();
if(pid1==0)
{
addr[0]=1;
sleep(1);
addr=2;
sleep(1);
addr=3;
}
else
{
printf("addr is %i \n",addr);
sleep(1);
printf("addr is %i \n",addr);
sleep(1);
printf("addr is %i \n",addr);
sleep(1);
if((shmctl(shmid,IPC_RMID, 0)) < 0)
{
printf("shmctl shared mem delete NG\n");
exit(1);
}
printf("shmctl shared mem delete OK\n");
}
return 0;
}
|
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|