欢迎来到天天文库
浏览记录
ID:34724187
大小:107.68 KB
页数:13页
时间:2019-03-10
《linux系统ioctl使用示例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、linux系统ioctl使用示例Thesewerewritedandcollectedbykf701,youcanuseandmodifythembutNOWARRANTY.Contactwithme:kf_701@21cn.com程序1:检测接口的inet_addr,netmask,broad_addr程序2:检查接口的物理连接是否正常程序3:更简单一点测试物理连接程序4:调节音量***************************程序1****************************************#include#include2、tring.h>#include#include#include#include#include#include#include#include#includestaticvoidusage(){printf("usage:ipconfiginterface");exit(0);}intmain(intargc,char**argv){structsockadd3、r_in*addr;structifreqifr;char*name,*address;intsockfd;if(argc!=2)usage();elsename=argv[1];sockfd=socket(AF_INET,SOCK_DGRAM,0);strncpy(ifr.ifr_name,name,IFNAMSIZ-1);if(ioctl(sockfd,SIOCGIFADDR,&ifr)==-1)perror("ioctlerror"),exit(1);addr=(structsockaddr_in*)&(ifr.ifr_addr);address=inet_ntoa(4、addr->sin_addr);printf("inetaddr:%s",address);if(ioctl(sockfd,SIOCGIFBRDADDR,&ifr)==-1)perror("ioctlerror"),exit(1);addr=(structsockaddr_in*)&ifr.ifr_broadaddr;address=inet_ntoa(addr->sin_addr);printf("broadaddr:%s",address);if(ioctl(sockfd,SIOCGIFNETMASK,&ifr)==-1)perror("ioctlerror"),exi5、t(1);addr=(structsockaddr_in*)&ifr.ifr_addr;address=inet_ntoa(addr->sin_addr);printf("inetmask:%s",address);printf("");exit(0);}********************************程序2*****************************************************#include#include#include#include#in6、clude#include#include#include#include#includetypedefunsignedshortu16;typedefunsignedintu32;typedefunsignedcharu8;#include#includeintdetect_mii(intskfd,char*ifname){structifreqifr;u16*data,m7、ii_val;unsignedphy_id;/*Getthevitalsfromtheinterface.*/strncpy(ifr.ifr_name,ifname,IFNAMSIZ);if(ioctl(skfd,SIOCGMIIPHY,&ifr)<0){fprintf(stderr,"SIOCGMIIPHYon%sfailed:%s",ifname,strerror(errno));(void)close(skfd);return2;}data=(u16*)(&ifr.ifr_data);phy_id=dat
2、tring.h>#include#include#include#include#include#include#include#include#includestaticvoidusage(){printf("usage:ipconfiginterface");exit(0);}intmain(intargc,char**argv){structsockadd
3、r_in*addr;structifreqifr;char*name,*address;intsockfd;if(argc!=2)usage();elsename=argv[1];sockfd=socket(AF_INET,SOCK_DGRAM,0);strncpy(ifr.ifr_name,name,IFNAMSIZ-1);if(ioctl(sockfd,SIOCGIFADDR,&ifr)==-1)perror("ioctlerror"),exit(1);addr=(structsockaddr_in*)&(ifr.ifr_addr);address=inet_ntoa(
4、addr->sin_addr);printf("inetaddr:%s",address);if(ioctl(sockfd,SIOCGIFBRDADDR,&ifr)==-1)perror("ioctlerror"),exit(1);addr=(structsockaddr_in*)&ifr.ifr_broadaddr;address=inet_ntoa(addr->sin_addr);printf("broadaddr:%s",address);if(ioctl(sockfd,SIOCGIFNETMASK,&ifr)==-1)perror("ioctlerror"),exi
5、t(1);addr=(structsockaddr_in*)&ifr.ifr_addr;address=inet_ntoa(addr->sin_addr);printf("inetmask:%s",address);printf("");exit(0);}********************************程序2*****************************************************#include#include#include#include#in
6、clude#include#include#include#include#includetypedefunsignedshortu16;typedefunsignedintu32;typedefunsignedcharu8;#include#includeintdetect_mii(intskfd,char*ifname){structifreqifr;u16*data,m
7、ii_val;unsignedphy_id;/*Getthevitalsfromtheinterface.*/strncpy(ifr.ifr_name,ifname,IFNAMSIZ);if(ioctl(skfd,SIOCGMIIPHY,&ifr)<0){fprintf(stderr,"SIOCGMIIPHYon%sfailed:%s",ifname,strerror(errno));(void)close(skfd);return2;}data=(u16*)(&ifr.ifr_data);phy_id=dat
此文档下载收益归作者所有