Linux内核的ioctl函数学习

Linux内核的ioctl函数学习

ID:39465477

大小:142.50 KB

页数:17页

时间:2019-07-04

Linux内核的ioctl函数学习_第1页
Linux内核的ioctl函数学习_第2页
Linux内核的ioctl函数学习_第3页
Linux内核的ioctl函数学习_第4页
Linux内核的ioctl函数学习_第5页
资源描述:

《Linux内核的ioctl函数学习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本函数影响由fd参数引用的一个打开的文件。#include#includeintioctl(intfd,intrequest,.../*void*arg*/);返回0:成功-1:出错第三个参数总是一个指针,但指针的类型依赖于request参数。我们可以把和网络相关的请求划分为6类:套接口操作文件操作接口操作ARP高速缓存操作路由表操作流系统下表列出了网络相关ioctl请求的request参数以及arg地址必须指向的数据类型:类别Request说明数据类型套接SIOCATMARKSIOCSP

2、GRPSI是否位于带外标记设置套接口intintint口OCGPGRP的进程ID或进程组ID获取套接口的进程ID或进程组ID文FIONBINFIOASYNCFIONRE设置/清除非阻塞I/O标志设置/清intintintintint件ADFIOSETOWNFIOGETOWN除信号驱动异步I/O标志获取接收缓存区中的字节数设置文件的进程ID或进程组ID获取文件的进程ID或进程组IDSIOCGIFCONFSIOCSIFADD获取所有接口的清单设置接口structifconfstruct接口RSIOCGIFADDRSIOCSIFFL地址获取

3、接口地址设置接口标ifreqstructAGSSIOCGIFFLAGSSIOCSI志获取接口标志设置点到点地ifreqstructFDSTADDRSIOCGIFDSTADD址获取点到点地址获取广播地ifreqstructRSIOCGIFBRDADDRSIOCSI址设置广播地址获取子网掩码ifreqstructFBRDADDRSIOCGIFNETMAS设置子网掩码获取接口的测度ifreqstructKSIOCSIFNETMASKSIOCGI设置接口的测度获取接口MTUifreqstructFMETRICSIOCSIFMETRICS(还有

4、很多取决于系统的实ifreqstructIOCGIFMTUSIOCxxx现)ifreqstructifreqstructifreqstructifreqstructifreqstructifreqARPSIOCSARPSIOCGARPSIOCD创建/修改ARP表项获取ARP表项structarpreqstructARP删除ARP表项arpreqstructarpreq路由SIOCADDRTSIOCDELRT增加路径删除路径structrtentrystructrtentry流I_xxx套接口操作:明确用于套接口操作的ioctl请求有三

5、个,它们都要求ioctl的第三个参数是指向某个整数的一个指针。SIOCATMARK:如果本套接口的的度指针当前位于带外标记,那就通过由第三个参数指向的整数返回一个非0值;否则返回一个0值。POSIX以函数sockatmark替换本请求。SIOCGPGRP:通过第三个参数指向的整数返回本套接口的进程ID或进程组ID,该ID指定针对本套接口的SIGIO或SIGURG信号的接收进程。本请求和fcntl的F_GETOWN命令等效,POSIX标准化的是fcntl函数。SIOCSPGRP:把本套接口的进程ID或者进程组ID设置成第三个参数指向的整

6、数,该ID指定针对本套接口的SIGIO或SIGURG信号的接收进程,本请求和fcntl的F_SETOWN命令等效,POSIX标准化的是fcntl操作。文件操作:以下5个请求都要求ioctl的第三个参数指向一个整数。FIONBIO:根据ioctl的第三个参数指向一个0或非0值分别清除或设置本套接口的非阻塞标志。本请求和O_NONBLOCK文件状态标志等效,而该标志通过fcntl的F_SETFL命令清除或设置。FIOASYNC:根据iocl的第三个参数指向一个0值或非0值分别清除或设置针对本套接口的信号驱动异步I/O标志,它决定是否收取针

7、对本套接口的异步I/O信号(SIGIO)。本请求和O_ASYNC文件状态标志等效,而该标志可以通过fcntl的F_SETFL命令清除或设置。FIONREAD:通过由ioctl的第三个参数指向的整数返回当前在本套接口接收缓冲区中的字节数。本特性同样适用于文件,管道和终端。FIOSETOWN:对于套接口和SIOCSPGRP等效。FIOGETOWN:对于套接口和SIOCGPGRP等效。接口配置:得到系统中所有接口由SIOCGIFCONF请求完成,该请求使用ifconf结构,ifconf又使用ifreq结构,如下所示:Structifconf

8、{intifc_len;//缓冲区的大小union{caddr_tifcu_buf;//inputfromuser->kernelstructifreq*ifcu_req;//returnofstructuresretu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。