打印skb内容的一小段代码

来源:互联网 发布:windows如何查看cpu 编辑:程序博客网 时间:2024/06/07 17:48
代码为:

点击(此处)折叠或打开

  1. if (skb)
  2.     {
  3.              char *buf = skb->data;
  4.              int len = skb->len;
  5.              int i;
  6.  
  7.              printk("[%s:%d]Packet length = %#4x\n", __FUNCTION__, __LINE__, len);
  8.              for (= 0; i < len; i++){
  9.                      if (% 16 == 0) printk("%#4.4x", i);
  10.                      if (% 2 == 0) printk(" ");
  11.                      printk("%2.2x", ((unsigned char *)buf)[i]);
  12.                     if (% 16 == 15) printk("\n");
  13.              }
  14.              printk("\n\n\n\n");
  15.      }


在另外一个内核版本上,上的打印代码回打不全,因为skb->data指针被移动过了,所以得用下面这段:

  1. if (skb)
  2. {
  3.      char *buf = (char *)(skb->mac_header);
  4.      int len = skb->len;
  5.      int i;

  6.      printk("[%s:%d]Packet length = %#4x\n", __FUNCTION__, __LINE__, len);
  7.      for (= 0; i < len; i++){
  8.              if (% 16 == 0) printk("%#4.4x", i);
  9.              if (% 2 == 0) printk(" ");
  10.              printk("%2.2x", ((unsigned char *)buf)[i]);
  11.             if (% 16 == 15) printk("\n");
  12.      }
  13.      printk("\n\n\n\n");
  14. }
0 0
原创粉丝点击