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;
}

猜你喜欢

转载自blog.csdn.net/wo_Niu123/article/details/82732401