Linux ioctl, fcntl
2019独角兽企业重金招聘Python工程师标准>>>
参考连接
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <net/if.h>
#include <arpa/inet.h>
#include <linux/sockios.h>int main(int argc, char *argv[]){struct sockaddr_in *addr;struct ifreq ifr;char *address;int sockfd;//char *name = "eth0";char *name = "wlp2s0";if(strlen(name) >= IFNAMSIZ){printf("device name is error.\n");exit(0);}strcpy(ifr.ifr_name, name);sockfd = socket(AF_INET, SOCK_DGRAM, 0);// get inet addrif(ioctl(sockfd, SIOCGIFADDR, &ifr) == -1)printf("inet addr:%s\n", address);addr = (struct sockaddr_in*)&(ifr.ifr_addr);address = inet_ntoa(addr -> sin_addr);printf("inet addr %s\n", address);//get maskif(ioctl(sockfd, SIOCGIFNETMASK, &ifr) == -1){printf("ioctl error.\n");exit(0);}addr = (struct sockaddr_in*)&ifr.ifr_addr;address = inet_ntoa(addr -> sin_addr);printf("Mask: %s\n",address);// get HWaddru_int8_t hd[6];if(ioctl(sockfd, SIOCGIFHWADDR, &ifr) == -1){printf("hwaddr error.\n");exit(0);}memcpy(hd, ifr.ifr_hwaddr.sa_data, sizeof(hd));printf("HWaddr: %02X:%02X:%02X:%02X:%02X:%02X\n",hd[0],hd[1],hd[2],hd[3],hd[4],hd[5]);exit(0);
}
转载于:https://my.oschina.net/innovation/blog/818439
Linux ioctl, fcntl相关推荐
- linux ioctl 设备操作函数 r3到r0 应用层 驱动层 通讯
一.ioctl的简介: 虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数.如CD-ROM的驱动 ...
- linux ioctl函数介绍
1. 概念 ioctl 是设备驱动程序中设备控制接口函数,一个字符设备驱动通常会实现设备打开.关闭.读.写等功能,在一些需要细分的情境下,如果需要扩展新的功能,通常以增设 ioctl() 命令的方式实 ...
- 引用 linux ioctl函数
http://vic295.blog.163.com/blog/static/74033530200991974322689/ 引用 linux ioctl函数 2009-10-19 19:43:22 ...
- Linux 文件锁 fcntl 函数详解
Linux 文件锁 fcntl 函数详解 #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd); ...
- Linux IOCTL
一.什么是IOCTL 首先,ioctl是一个系统调用. 二.IOCTL有什么用 1.应用场景 The major use of this is in case of handling some spe ...
- Linux ioctl FIONREAD 和select 使用
Linux ioctl FIONREAD 和select 使用 使用select 与ioctl判断socket client是否断开的方式 (1)ioctl + FIONREAD int nsel = ...
- linux中断函数中有锁,Linux下fcntl实现建议锁和强制锁
近日小温下APUE,发现Linux下的 fcntl 实现强制锁的功能好像都没试验过,简单做个测试. 首先用 fcntl 实现建议锁(Advisory locking),比较简单,贴个最简单的代码: # ...
- Linux进程缓冲区大小,Linux IOCTL动态命令、动态|自定义缓冲区大小、IOCTL使用大缓冲区的问题...
深夜睡不着,点根烟起来写点儿东西吧. 一个驱动程序除了具备读写设备的能力之外,其也应当具有对硬件控制的能力.在Windows下用户层代码使用API函数DeviceIoControl,通过传入驱动句柄, ...
- linux中fcntl()、lockf、flock的区别
fcntl().lockf.flock的区别 --lvyilong316 这三个函数的作用都是给文件加锁,那它们有什么区别呢?首先flock和fcntl是系统调用,而lockf是库函数.lockf实际 ...
最新文章
- Nacos系列:Nacos的三种部署模式
- Educational Codeforces Round 10 A. Gabriel and Caterpillar 模拟
- Hadoop辅助工具——Flume、Sqoop
- 机器学习之无监督学习——聚类
- java java.lang_Java之java.lang.IllegalMonitorStateException
- html checkbox 禁用,js禁用checkbox
- 手把手教你学会用Delve调试Go程序
- Netty Reactor线程模型与EventLoop详解
- json java 数据类型_程序员都应该了解的一种数据格式之 JSON
- 输入一个天数计算几周零几天 C语言,结构体练习——计算输入的日期为本年度第几天...
- linux 开机启动项管理
- android学习日记20--连接组件之Intent和IntentFilter
- 了解HTML CSS选择器操作和特性
- 朱松纯:三读《赤壁赋》,从人工智能的角度解读“心”与“理”的平衡
- Keil MDK5安装详细步骤
- Scintilla教程(7): 多选以及滚动
- 置换矩阵的转置为什么和逆矩阵相等?
- js 如何计算当年清明节日期
- IP摄像头实现远程目标检测(rtsp)
- JavaScript之继承和原型