结构原型:

struct ifreq
{
#define IFHWADDRLEN 6
 union
 {
  char ifrn_name[IFNAMSIZ];  
 } ifr_ifrn;
 
 union {
  struct sockaddr ifru_addr;
  struct sockaddr ifru_dstaddr;
  struct sockaddr ifru_broadaddr;
  struct sockaddr ifru_netmask;
  struct  sockaddr ifru_hwaddr;
  short ifru_flags;
  int ifru_ivalue;
  int ifru_mtu;
  struct  ifmap ifru_map;
  char ifru_slave[IFNAMSIZ]; 
  char ifru_newname[IFNAMSIZ];
  void __user * ifru_data;
  struct if_settings ifru_settings;
 } ifr_ifru;
};

#define ifr_name ifr_ifrn.ifrn_name 
#define ifr_hwaddr ifr_ifru.ifru_hwaddr 
#define ifr_addr ifr_ifru.ifru_addr 
#define ifr_dstaddr ifr_ifru.ifru_dstaddr 
#define ifr_broadaddr ifr_ifru.ifru_broadaddr 
#define ifr_netmask ifr_ifru.ifru_netmask 
#define ifr_flags ifr_ifru.ifru_flags 
#define ifr_metric ifr_ifru.ifru_ivalue 
#define ifr_mtu  ifr_ifru.ifru_mtu 
#define ifr_map  ifr_ifru.ifru_map 
#define ifr_slave ifr_ifru.ifru_slave 
#define ifr_data ifr_ifru.ifru_data 
#define ifr_ifindex ifr_ifru.ifru_ivalue 
#define ifr_bandwidth ifr_ifru.ifru_ivalue    
#define ifr_qlen ifr_ifru.ifru_ivalue 
#define ifr_newname ifr_ifru.ifru_newname 
#define ifr_settings ifr_ifru.ifru_settings

基本介绍: 

ifreq结构定义在/usr/include/net/if.h,用来配置ip地址,激活接口,配置MTU等接口信息的。其中包含了一个接口的名 字和具体内容——(是个共用体,有可能是IP地址,广播地址,子网掩码,MAC号,MTU或其他内容)。ifreq包含在ifconf结构中。而 ifconf结构通常是用来保存所有接口的信息的。

举例说明:

在Linux系统中,ifconfig命令是通过ioctl接口与内核通信,例如,当系统管理员输入如下命令来改变接口eth0的MTU大小:

ifconfig eth0 mtu 1250

ifconfig命令首先打开一个socket,然后通过系统管理员输入的参数初始化一个数据结构,并通过ioctl调用将数据传送到内核。SIOCSIFMTU是命令标识符。

struct ifreq data;
    fd = socket(PF_INET, SOCK_DGRAM, 0);
    < ... initialize "data" ...>
    err = ioctl(fd, SIOCSIFMTU, &data);

来源:http://blog.csdn.net/zhu114wei/article/details/6927513

Linux中ifreq 结构体分析和使用相关推荐

  1. linux 中 timeval结构体 - Neddy11 - 博客园

    linux 中 timeval结构体 - Neddy11 - 博客园 linux 中 timeval结构体 网上很多人写到,timeval结构解释错误 ************************ ...

  2. Linux内核device结构体分析

    1.前言 Linux内核中的设备驱动模型,是建立在sysfs设备文件系统和kobject上的,由总线(bus).设备(device).驱动(driver)和类(class)所组成的关系结构,在底层,L ...

  3. linux 中 timeval结构体

    网上很多人写到,timeval结构解释错误 ******************************************************************* 问题如下: 在deb ...

  4. linux timeval,linux 中 timeval结构体

    网上很多人写到,timeval结构解释错误 ******************************************************************* 问题如下: 在deb ...

  5. 笔记----Linux中pt_regs结构体

    该系统调用所需要的参数pt_regs在include/asm-i386/ptrace.h文件中定义: struct pt_regs { long ebx;                  //可执行 ...

  6. file_operations结构体分析 (设备文件的操作)

    linux设备驱动中file_operations结构体分析  struct module *owner 第一个 file_operations 成员根本不是一个操作; 它是一个指向拥有这个结构的模块 ...

  7. Linux结构体变量报错,C语言中的结构体

    用户自己建立自己的结构体类型 1.  定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...

  8. linux中c语言结构体详解,Linux C语言结构体-学习笔记

    Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习. 预处理程序. 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 ...

  9. 基于LLVM编译器的IDA自动结构体分析插件

    引用 这篇文章旨在介绍一款对基于LLVM的retdec开源反编译器工具进行二次开发的IDA自动结构体识别插件实现原理分析 文章目录 引用 简介 源码分析 LLVM编译器简介 Retdec源码分析 Kl ...

最新文章

  1. 第二十天:规划风险应对
  2. 上海松江大学城学计算机,上海松江大学城有几所学校?
  3. linux lisp环境,Ubuntu下Common Lisp配置
  4. oracle 拼接_老品牌福建泉州49寸液晶拼接屏多少钱品质
  5. RTOS原理与实现10:互斥信号量实现
  6. 大型网站技术架构思维导图
  7. linux搭建steam服务器吗,如何在Linux系统服务器中安装steam play
  8. springmvc实现多图片上传
  9. linux 创建gpt分区,parted创建GPT分区
  10. Ext2.2 combo 多选效果
  11. CAD绘图次序快捷键是什么?怎么用?
  12. STM32F429第二十八篇之ADC
  13. 房产行业数字化转型迷思:技术能提供何种助力?
  14. 【C语言指针题】编写函数实现在任意行、任意列的二维数组中寻找鞍点,行、列数均有主调函数传入。
  15. Artetxe2018CoNLL_Uncovering divergent linguistic information in word embeddings...
  16. java线程池的正确使用方式,completableFuture
  17. 深度强化学习主流算法介绍(二):DPG系列
  18. SQL Server中字段、记录、表、列、行、属性、元组、主键、外键的含义
  19. ushort mysql,Mysql的CodeFirst:不支持ushort、uint、ulong的字段提示不足
  20. 京东抢购脚本使用方法+代码更新(超详细)

热门文章

  1. SAP WM 业务部门Unplanned工单消耗导致WM层面单据异常问题之分析
  2. 10个机器学习的JavaScript示例
  3. Tensorflow—Droupout
  4. 综述 | 北斗系统应用趋势分析
  5. 卫星对于物联网来说是一个非常好的选择
  6. Science公布年度十大科学突破!新冠疫苗居首位
  7. 中国智能语音行业研究
  8. 周鸿祎:quot;安全大脑quot;将成智能经济时代的网络安全中枢
  9. 当所有人都向往大厂时,这些 00 后程序员却选择逃离
  10. @2021 高考生,用 Python 分析专业“钱景”