UNIX网络编程--ioctl操作(十七)
来源:互联网 发布:冰川网络 高祥 编辑:程序博客网 时间:2024/05/28 22:10
一、概述
在本书中有两个地方都对这个函数进行了介绍,其实还有很多地方需要这个函数。ioclt函数传统上一直作为纳西而不适合归入其他精细定义类别的特性的系统接口。网络程序(特别是服务器程序)经常在程序启动执行后使用ioctl获取所在主机全部网络接口的信心,包括:接口地址、是否支持广播、是否支持多播。
二、ioctl函数
#include <unistd.h>int ioctl(int fd,int request,...../* void *arg /);//返回:若成功则为0.失败则我-1其中第三个参数总是一个指针,但指针的类型依赖于request参数。我们可以把和网络相关的请求划分为6类:
1)套接字操作
2)文件操作
3)接口操作
4)ARP高速缓存操作
5)路由表操作
6)流系统
不但某些ioclt操作和某些fcntl操作功能重叠(譬如把套接字设置为非阻塞),而且某些操作可以使用ioctl以不止一种方式制定(譬如设置套接字的进程组属主)。下表列出了网络相关ioctl请求的request参数以及arg地址必须指向的数据类型。
三、套接字操作
明确要求套接字ioctl请求有三个,它们都要求ioctl的第三个参数是指向某个整数的一个指针。
1)SIOCATMARK 如果本套接字的读指针当前位于带外标记,那就通过由第三个参数指向的帧数放回一个非0值,否则返回一个0值。
2)SIOCGPGRP 通过由第三个参数指向的整数返回本套接字的进程ID或进程组ID,该ID指定针对本套接字的SIGIO或SIGURG信号的接受进程。
3)SIOCSPGR 本套接字的进程ID或进程组ID设置成由第三个参数指向的整数,该ID指定对本套接字的SIGIO或SIGURG信号的接受进程。
四、文件操作
以FIO打头的可能还适用于除套接字外某些特定类型的文件。都要求ioctl的第三个参数指向一个帧数。
1)FIONBIO 根据ioctl的第三个参数指向一个0值或非0值,可消除或设置本套接字的非阻塞式I/O标志。本请求和O_NONBLOCK文件状态标志等效,而可以通过fcntlde F_SETFL命令清除或设置该标志。
2)FIOASYNC 根据ioctl的第三个参数指向一个0值或非0值,可消除或设置本套接字的信号驱动异步I/O标志,它决定是否收取针对本套接字的异步I/O信号。本请求和O_ASYNC文件状态标志等效,而可以通过fcntl的F_SETFL命令清除或设置该标志
3)FIONREAD 通过由ioctl的第三个参数指向的整数返回当前在本套接字接受缓冲区中的字节数。
4) FIOSETOWN 对于本套接字和SIOCSPGRP等效
5) FIOGETOWN 对于套接字和SIOCGPGRP等效。
五、接口配置
六、get_ifi_info函数
七、接口操作
八、arp高速缓存操作
九、路由表操作
- UNIX网络编程--ioctl操作(十七)
- UNIX网络编程 -- 第十六章 ioctl操作
- Unix网络编程代码 第17章 ioctl操作
- 《网络编程》ioctl 操作
- 网络编程学习笔记(ioctl操作)
- unix网络编程——ioctl 函数的用法详解
- UNIX网络编程——ioctl 函数的用法详解
- unix网络编程——ioctl 函数的用法详解
- unix网络编程——ioctl 函数的用法详解
- UNIX网络编程卷一:第十七章 ioctl
- ioctl 网络操作
- 网络编程练习-ioctl
- 《Unix网络编程》卷1:套接字联网API(第3版):非阻塞I/O、ioctl操作、路由套接字
- 网络编程之ioctl函数
- unix高级环境编程 ioctl()函数详解
- unix网络编程(1)
- UNIX网络编程(一)
- UNIX网络编程(二)
- VS2012 MFC应用程序 ODBC SQL2005 数据库连接
- 朋友失败时,你难过,朋友成功时,你更难过?
- vi 编辑器中查找、替换
- c++中的参数传递(值传递和引用传递)
- 正向最大匹配中文分词算法
- UNIX网络编程--ioctl操作(十七)
- 【leetcode】Merge Intervals
- JAVA 调用Web Service的方法
- Spring <context:annotation-config/> 的解释
- 解决 vm 安装DOS7.10,invalid disk
- 自己制作jQuery插件
- jQuery入门教程-使用tablesorter插件(表格排序)
- Eclipse中代码编辑背景颜色修改
- something about webservice