哪位大哥知道一个进程怎么才能访问另一个进程的地址空间???

时间:2021-02-22 18:53:00
我在一个进程中申请了一块内存,地址位0xAAA并写入了一些数据,同时我又run起另一个进程,内存地址位0xAAA的地方没有任何数据,应该是进程地址空间相对独立的原因吧
可是我要用那些数据,该怎样访问那个内存的地址空间呢????
请高手指点

6 个解决方案

#1


没办法!
要进程间共享数据还是用内存映射文件或“共享节”(#pragma data_seg)

#2


内存映射

#3


To:lwg7603(刑满释放人员) 
我要在第一个进程*享的数据是动态申请内存的一个链表,用文件映射不好
实现阿,可以给我详细说一下共享节怎么用么,万分感谢!!!

#4


把共享内存看作是静态分配内存不就可以在共享内存里作一个链表啊。
分配pShm=shmget(key,100*sizeof(struct List),0666|IPC_CREATE)
struct List *pgTempShm;
pgTempShm=(struct List*)(pShm);
写个分配内存的策略。
void * AllocShm()
{
     struct List *pTempShm;
     if(!(pTempShm=(struct List*)(pgTempShm)){
        错误处理}

     if(!(pgTempShm=(struct List*)(pgTempShm+1)){
        错误处理}
     return pTempShm;
}
把AllocShm替换动态分配内存的malloc就可以了。

#5


To:xiaoliao(梦之子)
shmget() 是什么函数呢,在msdn里怎么查不到呢
AllocShm() 是怎么分配内存的,每次进去pgTempShm的值不都是pShm么

#6


在别的进程里注入一个远程线程
CreateRemoteThread

#1


没办法!
要进程间共享数据还是用内存映射文件或“共享节”(#pragma data_seg)

#2


内存映射

#3


To:lwg7603(刑满释放人员) 
我要在第一个进程*享的数据是动态申请内存的一个链表,用文件映射不好
实现阿,可以给我详细说一下共享节怎么用么,万分感谢!!!

#4


把共享内存看作是静态分配内存不就可以在共享内存里作一个链表啊。
分配pShm=shmget(key,100*sizeof(struct List),0666|IPC_CREATE)
struct List *pgTempShm;
pgTempShm=(struct List*)(pShm);
写个分配内存的策略。
void * AllocShm()
{
     struct List *pTempShm;
     if(!(pTempShm=(struct List*)(pgTempShm)){
        错误处理}

     if(!(pgTempShm=(struct List*)(pgTempShm+1)){
        错误处理}
     return pTempShm;
}
把AllocShm替换动态分配内存的malloc就可以了。

#5


To:xiaoliao(梦之子)
shmget() 是什么函数呢,在msdn里怎么查不到呢
AllocShm() 是怎么分配内存的,每次进去pgTempShm的值不都是pShm么

#6


在别的进程里注入一个远程线程
CreateRemoteThread