xp5211314 发表于 2009-03-03 10:45

建议楼主注明你自己使用的内核版本号在我的内核2.6.18-53.el5中

extern struct sock *netlink_kernel_create(int unit, unsigned int groups, void (*input)(struct sock *sk, int len), struct module *module);

struct netlink_skb_parms
{
      struct ucred            creds;          /* Skb credentials      */
      __u32                   pid;
      __u32                   dst_pid;
      __u32                   dst_group;
      kernel_cap_t            eff_cap;
      __u32                   loginuid;       /* Login (audit) uid */
      __u32                   sid;            /* SELinux security id */
};


与楼主的不同

platinum 发表于 2009-09-14 13:39


            sendmsg(sock_fd, &msg, 0);
            memset(nlh, 0, NLMSG_SPACE(MAX_PAYLOAD));
            recvmsg(sock_fd, &msg, 0);

用户态发送后理解接收,这里的接收会进入阻塞状态吗?
如果会,那么如果又恰巧 kernelspace -> userspace 丢包了怎么办?

贺兰云天 发表于 2009-09-15 23:00

原帖由 platinum 于 2009-9-14 13:39 发表 http://bbs3.chinaunix.net/images/common/back.gif

            sendmsg(sock_fd, &msg, 0);
            memset(nlh, 0, NLMSG_SPACE(MAX_PAYLOAD));
            recvmsg(sock_fd, &msg, 0);

用户态发送后理解接收,这里的接收会进入阻塞状态吗?
如果 ...
测试了下,如果内核不返回,用户态程序会阻塞住。。。
如果用户态退出或者不接收做其他事情,这个消息貌似就丢了,内核中也没有任何信息打印

hk2305621 发表于 2012-09-18 21:43

为啥代码好多 &nbsp 呢? 空格?

duanjigang 发表于 2017-03-11 22:28

好了,发现代码掉了右中括号。。补上了,七怪。

duanjigang 发表于 2017-03-11 22:28

hk2305621 发表于 2012-09-18 21:43
为啥代码好多 &nbsp 呢? 空格?

修好了。
页: 1 [2]
查看完整版本: netlink socket 编程之app:在用户空间枚举系统网络设备列表