正常思路是修改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;
}