- 论坛徽章:
- 0
|
进程1:
- #include <stdio.h>
- #include <sys/shm.h>
- int main( void )
- {
- key_t key = ftok( "./key", 10);
- if( -1 == key ) printf("no key\n");
- int shm = shmget( key | IPC_CREAT, 8192, 0666);
- char *buf = (char*)shmat( shm, 0, 0);
- printf("put data to share memery\n");
- buf = "test share memery";
- shmdt( (void*)buf);
- printf("main got data: %s\n", buf);
- printf("process 1 exit\n");
- return 0;
- }
复制代码 进程2:
- #include <stdio.h>
- #include <sys/shm.h>
- int main( void )
- {
- key_t key = ftok( "./key", 10);
- if( -1 == key ) printf("no key\n");
- int shm = shmget( key , 0, 0666);
- char *buf =(char*) shmat( shm, 0, 0);
- printf("process 2 exit: %s\n", buf);
- shmdt( (void*)buf);
- return 0;
- }
复制代码 大家好,为什么进程2不可以访问共享的内存呢?每次都printf那里就崩溃了。是我创建的共享内存有问题吗?在相关进程就可以顺利执行,请大家指点一下。 |
|