热门关键字:  PHP  seo  Cisco  网络广告 虚拟主机 中文域名
当前位置 :| 主页>服务器>Linux服务器>

推荐:Linux用户态与内核态的交互

来源:赛迪网技术社区 作者:Kendo 时间:2006-09-17 点击:

同样地,函数close用于关闭打开的netlink socket。程序中,因为程序一直循环接收处理内核的消息,需要收到用户的关闭信号才会退出,所以关闭套接字的工作放在了自定义的信号函数sig_int中处理:









/*这个信号函数,处理一些程序退出时的动作*/

static void sig_int(int signo)

{

  struct sockaddr_nl kpeer;

  struct msg_to_kernel message;



  memset(&kpeer, 0, sizeof(kpeer));

  kpeer.nl_family = AF_NETLINK;

  kpeer.nl_pid    = 0;

  kpeer.nl_groups = 0;



  memset(&message, 0, sizeof(message));

  message.hdr.nlmsg_len = NLMSG_LENGTH(0);

  message.hdr.nlmsg_flags = 0;

  message.hdr.nlmsg_type = IMP2_CLOSE;

  message.hdr.nlmsg_pid = getpid();



/*向内核发送一个消息,由nlmsg_type表明,应用程序将关闭*/

sendto(skfd, &message, message.hdr.nlmsg_len, 0,
(struct sockaddr *)(&kpeer),         sizeof(kpeer));



  close(skfd);

  exit(0);

}

 


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
赞助商连接