QNX进程间可以访问其他进程的私有地址空间吗?

QNX进程间如何开辟不定大小的共享内存呢?
现在假设有进程A和B要进行数据交互:
进程A:根据实际运行信息去分配malloc 1~32块固定大小的内存,并进行写信息操作;
进程B:去读进程A分配的相应内存块信息;
现在把进程A所分配的1~32块固定大小的内存的虚拟地址共享出来,请问进程B有没有办法去读进程A的私有地址呀? :question:
即类似于windows下的ReadProcessMemory().

对于不定大小的共享内存,可不可以这样:
1、先建一个存放共享内存信息的共享内存SWinfo
2、A建立一个共享内存SWA1,同时通知SWinfo,放入A建立的共享内存的信息
3、B去通过SWinfo知道有SWA1及其信息,让B去map
4、A又建立一个,同样操作。
另外,让B去读A的私有地址,不知道你用的什么版本。qnx6下用ptrace函数就可以,qnx4下我也不知道由没有直接能获取的。有些方法,太变态,不通用,就不说了

我现在的处理就是先建立好一个用于标识多块共享内存信息
进程A创建若干块固定大小的共享内存块,同时通过发MsgSend通知进程B,打开相应的内存块操作。暂时好像没什么问题,不知道QNX的MsgSend信道交互足够可靠不,会不会产生丢失的问题。所以同时做了个用于标识多块共享内存信息的一个共享内存供查询。
还有一个问题是访问进程间私有空间的问题:
假设进程A用malloc开辟的一块内存块,进程B有没有办法去获取对这块内存块的控制权?

对了,我现在用的版本是6.4.0 :laughing:

malloc()出来的地址是私有的,无法share给别的进程;需要共享的内存必须通过shm_open()/mmap()等专用函数来取得。

关于可变大小共享内存,在另一个帖子里讨论过了。

http://www.openqnx.com/chinese/viewtopic.php?t=2528