2024年4月27日发(作者:)
linux icotl函数解析
收藏
ioctl函数:
网络程序(一般是服务器程序)中ioctl常用于在程序启动时获得主机上
所有接口的信息: 接口的地址、接口是否支持广播、是否支持多播等等。
#include
int ioctl(int fd, int request, …/*void *arg */);
返回:成功返回0,出错返回-1;
下表列出了网络相关ioctl 请求的request 参数以及arg 地址必须指向的数据类型:
Request
类说明
数据类型
别
套
接
口
SIOCATMARK
SIOCSPGRP
SIOCGPGRP
是否位于带外标记
设置套接口的进程ID 或进
程组ID
获取套接口的进程ID 或进
程组ID
文
件
FIONBIN
FIOASYNC
FIONREAD
FIOSETOWN
FIOGETOWN
设置/ 清除非阻塞I/O 标
志
设置/ 清除信号驱动异步
I/O 标志
获取接收缓存区中的字节
数
设置文件的进程ID 或进程
组ID
获取文件的进程ID 或进程
组ID
int
int
int
int
int
int
int
int
SIOCGIFCONF
SIOCSIFADDR
SIOCGIFADD
R
接
SIOCSIFFLAG
S
口
SIOCGIFFLAG
S
SIOCSIFDSTA
DDR
SIOCGIFDSTA
DDR
SIOCGIFBRD
ADDR
SIOCSIFBRDA
DDR
SIOCGIFNET
MASK
SIOCSIFNETM
ASK
SIOCGIFMET
RIC
SIOCSIFMETR
IC
SIOCGIFMTU
SIOCxxx
SIOCSARP
ASIOCGARP
RP
SIOCDARP
路
SIOCADDRT
SIOCDELRT
由
流
I_xxx
获取所有接口的清单
设置接口地址
获取接口地址
设置接口标志
获取接口标志
设置点到点地址
获取点到点地址
获取广播地址
设置广播地址
获取子网掩码
设置子网掩码
获取接口的测度
设置接口的测度
获取接口MTU
(还有很多取决于系统的
创建/ 修改ARP 表项
获取ARP 表项
删除ARP 表项
增加路径
删除路径
struct
ifconf
struct ifreq
struct ifreq
struct ifreq
struct ifreq
struct ifreq
struct ifreq
struct ifreq
struct ifreq
struct ifreq
struct ifreq
struct ifreq
struct ifreq
struct ifreq
struct
arpreq
struct
arpreq
struct
arpreq
struct
rtentry
struct
rtentry
实现)
发布评论