怎么统计得到进程I发送给进程J的消息个数呀

ywchen2000 2006-01-10 10:54:09
怎么统计得到进程I发送给进程J的消息个数呀
...全文
168 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywchen2000 2006-01-13
  • 打赏
  • 举报
回复
malloc能在内核分配内存???

YanDong_8212(谢科) 你现在看的是LINUX什么版本的的内核代码
YanDong_8212 2006-01-12
  • 打赏
  • 举报
回复
定义一个这种结构的指针,然后malloc,如果超长再relloc,跟分配一般的空间一样。内部监控按二楼说的方法。外部的话,可能会不那么精确,可以考虑在后台用msgctl的IPC_STAT命令不断去取msgqid_ds结构,然后进行分析。
ywchen2000 2006-01-12
  • 打赏
  • 举报
回复
struct {
pid_t sndpid;
pid_t rcvpid;
int nCount;
}
这个表早就定义好了.问题是怎么动态的添加到表里呢,这张表怎么动态的分配内存呢????
fierygnu 2006-01-11
  • 打赏
  • 举报
回复
在两个进程外部监控吗?ipcs得到的信息太少?
YanDong_8212 2006-01-11
  • 打赏
  • 举报
回复
你定义一个
struct {
pid_t sndpid;
pid_t rcvpid;
int nCount;
}
再统计呀。
YanDong_8212 2006-01-10
  • 打赏
  • 举报
回复
恰好正在研究消息队列。
从msqid_ds结构来看,没有直接的计数器。只有一个msg_qnum是记录当前队列中的消息数的。要看你的具体需求是什么,如果你的计数器放在进程J,每当进程J,msgrcv一次就该累加一次,如果计数器放在进程I,那么每msgsnd一次就要取msqid_ds结构中的msg_lrpid(最后接收消息的pid),然后和进程J的PID比较,如果相同则累加,此时为了避免重复还应该判断下msg_qnum。
ywchen2000 2006-01-10
  • 打赏
  • 举报
回复
to YanDong_8212(谢科)
现在问题是怎么把进程I发送给进程J的消息个数存进一张线形表里

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧