Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57342
  • 博文数量: 9
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 95
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-16 10:16
文章分类

全部博文(9)

文章存档

2010年(4)

2009年(4)

2008年(1)

我的朋友

分类: LINUX

2010-01-04 17:02:08

  • Kernel:

在dev.c的dev_ifsioc()加入

 

        case SIOCCIFSTATS:    /* Clean up the Stats of a device */
            {
            struct net_device_stats * pStats = dev->get_stats(dev);
            memset(pStats, 0, sizeof(struct net_device_stats));
            }
            return 0;


此处SIOCCIFSTATS自行定义,如

 

#define #define SIOCCIFSTATS 0x89c1

  • usersapce

代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <unistd.h>
#include <linux/if.h>
#include <linux/sockios.h>
#include <linux/ethtool.h>
#include <linux/mii.h>
#include <linux/sockios.h>


int
main(int argc, char *argv[])
{
    struct ifreq ifr;
    int fd;

     if(argc < 2){
         printf("Usage:%s interface\n", argv[0]);
         return -1;
     }


    if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
        perror("socket");
        exit(1);
    }


    strcpy(ifr.ifr_name, argv[1]);

    if (ioctl(fd, SIOCCIFSTATS, &ifr) < 0) {
        perror("SIOCCIFSTATS");
        exit(1);
    }

    return 0;
}


阅读(2355) | 评论(0) | 转发(0) |
0

上一篇:[NETWORK]

下一篇:syslog

给主人留下些什么吧!~~