1. 程式人生 > >HI3521D 應用程式更改系統IP

HI3521D 應用程式更改系統IP

正常思路是修改linux系統檔案,海思HI3521D檔案系統裡面沒有,也不做新增這些檔案的嘗試了。

我的思路:
1.建立一個network.sh指令碼

#!/bin/sh

ifconfig eth0 192.168.1.148 netmask 255.255.255.0
route add default gw 192.168.1.1

在啟動檔案/etc/init.d/rcS中,執行該指令碼

/opt/network.sh 

這樣我們只需要在應用程式中修改network.sh指令碼,再reboot一下,就ok了。

修改network.sh指令碼程式碼

#define NETFILE "/opt/network.sh"
#define FLAGS O_WRONLY | O_CREAT | O_TRUNC //建立檔案的許可權,使用者讀、寫、執行、組讀、執行、其他使用者讀、執行 #define MODE S_IRWXU | S_IXGRP | S_IROTH | S_IXOTH int main() { int fd = -1 ; if((fd = open(NETFILE, FLAGS ,MODE)) == -1) { printf("openn\n"); return -1; } char *ip = "192.168.11.10" ; char *gw
= "192.168.11.1" ; char *mask = "255.255.255.1" ; /* 清空檔案 */ ftruncate(fd,0); /* 重新設定檔案偏移量 */ lseek(fd,0,SEEK_SET); char *head = "#/bin/sh\n\n" ; int ret = write(fd , head , strlen(head)); char buf[250] ; sprintf(buf , "ifconfig eth0 %s netmask %s\n",ip,mask) ; ret = write
(fd, buf, strlen(buf)); memset(buf , 0 , sizeof(buf)); sprintf(buf , "route add default gw %s\n", gw) ; close(fd); system("reboot") ; return 0; }