Linux下c语言通过修改/etc/network/interfaces修改IP
2017-01-03 16:07
204 查看
在ARM平台上做嵌入式开发,发现通过其他系统系统调用去修改IP地址之后,设备会死机。于是采用修改/etc/network/interfaces之后重启的方式修改IP。
代码如下:
代码如下:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/ioctl.h> #include<sys/socket.h> #include<arpa/inet.h> #include<netinet/in.h> #include<net/if.h> //设置IP void setip(char *buffer) { char * FILE_NAME = "/etc/network/interfaces"; FILE * file_fd; int len = 0; file_fd = fopen(FILE_NAME,"r+"); if(file_fd == NULL) { perror("errno"); } //跳过开头的116个字节 fseek(file_fd,116,SEEK_CUR); fwrite(buffer,strlen(buffer),1,file_fd); fclose(file_fd); } //获取IP void getip(char *buffer) { char * FILE_NAME = "/etc/network/interfaces"; FILE * file_fd; int len = 0; file_fd = fopen(FILE_NAME,"rb"); if(file_fd == NULL) { perror("errno"); } //跳过开头的116个字节 fseek(file_fd,116,SEEK_CUR); len = fread(buffer, 1, 13, file_fd); if(len == -1) { printf("File read error!\n"); perror("errno"); } fclose(file_fd); } int main(int argc, char * argv[]) { char ipbuffer[20]="192.168.1.112"; setip(ipbuffer); getip(ipbuffer); printf("ipbuffer is:%s\n",ipbuffer); system("reboot"); printf("rebooting!!!\n"); return 0; }
相关文章推荐
- Ubuntu IP设置 /etc/network/interfaces
- 根据 crazycode的建议,修改通过IP控制权限访问网站的部分代码
- 通过WMI修改IP,DNS还有网关!
- 监控SQL:通过SQL Server的DML触发器来监控哪些IP对表的数据进行了修改(2)
- Ubuntu Server 网络配置文件 /etc/network/interfaces
- Debian系网络配置 /etc/network/interfaces
- 通过WMI修改IP,DNS还有网关
- linux中通过修改/etc/passwd,/etc/shadow,/etc/group创建用户
- debian文本配置网络备忘:/etc/network/interfaces
- linux 下 /etc/network/interfaces 作用
- 修改SCAN IP后不能通过SCAN IP连接实例
- 用C++通过wmi方式修改网卡TCP/IP设置
- Ubuntu10.04 取消ADSL拨号设置还原/etc/network/interfaces
- 自动修改linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件的脚本
- 监控SQL:通过SQL Server的DML触发器来监控哪些IP对表的数据进行了修改(2)
- 通过ip default-network 命令配置EIGRP 默认网络
- 自动修改linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件的脚本
- 通过注册表修改WINCE系统IP参数
- Ubuntu 网卡配置文件/etc/network/interfaces重启失效
- debian等的网络管理 配置 /etc/network/interfaces 和图形界面配置的区别