关于QNX的IPC通讯问题

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。

关于QNX的IPC通讯问题

帖子soncfe » 周五 4月 27, 2012 2:15 pm

我要取得chid ;
可以用name_attach得到的attach->chid;
也可以用ChannelCreate直接取得chid;两者有区别吗?

而且chid的值在不同进程中值有关系吗?
使用ConnectAttach得到的coid在不同进程中也因此相等,这样有关系吗?

还有在发送信息给进程时MsgSend或MsgSendPulse中使用的coid;
这个coid是name_open进程名得来的还是ConnectAttach得来的;
我试了试都可以???

请大侠们指教~~~
soncfe
New Member
 
帖子: 2
注册: 周五 4月 27, 2012 2:03 pm

Re: 关于QNX的IPC通讯问题

帖子xtang » 周四 5月 03, 2012 9:25 am

ChannelCreate()是最底部的调用,返回一个chid;name_attach()内部除了使用ChannelCreate()来取得一个chid以外,还把这个chid跟一个 name绑定在一起。这样,别的进程只需要知道name,就可以来通信了。

chid/coid的值只在一个进程中有效,跟open()返回的文件描述符一样(其实在QNX的open()里,返回的就是一个coid)

ConnectAttach()与name_open()都返回coid,跟 上面的ChannelCreate() vs name_attach() 一样,ConnectAttach()需要知道在另一个进程里的chid号(实际应用中比较难),而name_open()只需要知道一个name就行了。
xtang
Moderator
 
帖子: 1815
注册: 周五 9月 12, 2003 4:14 am
地址: China


回到 四海同心QNX论坛

在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客