Linux中ifreq 结构体分析和使用
结构原型:
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 结构体分析和使用相关推荐
- linux 中 timeval结构体 - Neddy11 - 博客园
linux 中 timeval结构体 - Neddy11 - 博客园 linux 中 timeval结构体 网上很多人写到,timeval结构解释错误 ************************ ...
- Linux内核device结构体分析
1.前言 Linux内核中的设备驱动模型,是建立在sysfs设备文件系统和kobject上的,由总线(bus).设备(device).驱动(driver)和类(class)所组成的关系结构,在底层,L ...
- linux 中 timeval结构体
网上很多人写到,timeval结构解释错误 ******************************************************************* 问题如下: 在deb ...
- linux timeval,linux 中 timeval结构体
网上很多人写到,timeval结构解释错误 ******************************************************************* 问题如下: 在deb ...
- 笔记----Linux中pt_regs结构体
该系统调用所需要的参数pt_regs在include/asm-i386/ptrace.h文件中定义: struct pt_regs { long ebx; //可执行 ...
- file_operations结构体分析 (设备文件的操作)
linux设备驱动中file_operations结构体分析 struct module *owner 第一个 file_operations 成员根本不是一个操作; 它是一个指向拥有这个结构的模块 ...
- Linux结构体变量报错,C语言中的结构体
用户自己建立自己的结构体类型 1. 定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...
- linux中c语言结构体详解,Linux C语言结构体-学习笔记
Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习. 预处理程序. 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 ...
- 基于LLVM编译器的IDA自动结构体分析插件
引用 这篇文章旨在介绍一款对基于LLVM的retdec开源反编译器工具进行二次开发的IDA自动结构体识别插件实现原理分析 文章目录 引用 简介 源码分析 LLVM编译器简介 Retdec源码分析 Kl ...
最新文章
- 第二十天:规划风险应对
- 上海松江大学城学计算机,上海松江大学城有几所学校?
- linux lisp环境,Ubuntu下Common Lisp配置
- oracle 拼接_老品牌福建泉州49寸液晶拼接屏多少钱品质
- RTOS原理与实现10:互斥信号量实现
- 大型网站技术架构思维导图
- linux搭建steam服务器吗,如何在Linux系统服务器中安装steam play
- springmvc实现多图片上传
- linux 创建gpt分区,parted创建GPT分区
- Ext2.2 combo 多选效果
- CAD绘图次序快捷键是什么?怎么用?
- STM32F429第二十八篇之ADC
- 房产行业数字化转型迷思:技术能提供何种助力?
- 【C语言指针题】编写函数实现在任意行、任意列的二维数组中寻找鞍点,行、列数均有主调函数传入。
- Artetxe2018CoNLL_Uncovering divergent linguistic information in word embeddings...
- java线程池的正确使用方式,completableFuture
- 深度强化学习主流算法介绍(二):DPG系列
- SQL Server中字段、记录、表、列、行、属性、元组、主键、外键的含义
- ushort mysql,Mysql的CodeFirst:不支持ushort、uint、ulong的字段提示不足
- 京东抢购脚本使用方法+代码更新(超详细)