HI3521D 應用程式更改系統IP
阿新 • • 發佈:2018-11-20
正常思路是修改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;
}