银河麒麟(linux 架构aarch64) 获取本机所有IP地址

环境:

版本:银河麒麟桌面操作系统V10(SP1)
内核:Linux 5.4.18-35-generic
CPU:Phytium,D2000/8

终端输入 uname -m 查看
架构 aarch64

在windows 上 和 银河麒麟(linux loongarch64) 使用下面的代码获取IP地址:

银河麒麟(linux) gethostname 获取不到IP地址_程序媛zcx的博客-CSDN博客_银河麒麟查看ip地址

同样的代码 在银河麒麟(linux 架构loongarch64)可以,但是在 银河麒麟(aarch64)上不可以,于是用读文件的方式获取所有ip地址列表,代码如下:

std::vector<std::string> WHUDP:: getIpList() {
    std::vector<std::string> result;
    char buff[BUFSIZ];
    int i=0,k=0;
    char tmpbuff[1];
    int ret=0;
    FILE * addrFile;
    addrFile = popen("ifconfig", "r");
    memset(buff,0,BUFSIZ);
    while(1) {
        ret = fread(tmpbuff, 1, 1, addrFile);
        if(ret)
        {
            buff[i]=tmpbuff[0];
            i++;
            if(buff[i - 1]=='\n')
            {
                string str = buff;
                string::size_type idx = str.find("inet ");
//                cout<< "buff111111== " << buff << " idx== " << to_string(idx) << endl;
                if(idx == string::npos) {
                } else {
//                    cout<< "buff222== " << buff  << endl;
//                    stringstream strsplite(str);
//                    char c = ' ';
//                    vector<string> resArr;
//                    string ss1;
//                    while(getline(strsplite, ss1, c)) {
//                        cout<< "ss1=== " << ss1 << endl;
//                        resArr.push_back(ss1);
//                    }
//                    string ipstr = resArr[9];
//                    cout<< " ipstr11===  " << ipstr << endl;

//                    result.push_back(ipstr);

                    int start = idx+5;
                    for(k=start;k< strlen(buff);k++)
                    {
                        if(buff[k]==' ')
                        {
//                            cout<< "===========" << to_string(k-(start)) << endl;
                            string ipstr=str.substr(start,k-(start));
//                            cout<< " ipstr11===" << ipstr << endl;
                            result.push_back(ipstr);
                            k=0;
                            i=0;
                            memset(buff,0,BUFSIZ);
                            break;
                        }
                    }
                }
                k=0;
                i=0;
                memset(buff,0,BUFSIZ);
            }
        }
        else
        {
            break;
        }

    }
    fclose(addrFile);

    return result;
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在银河麒麟中安装aarch64-none-linux-gnu,需要按照以下步骤进行: 1. 下载交叉编译工具链 在网上下载适用于银河麒麟aarch64架构交叉编译工具链。下载后,将其解压到一个目录中。 2. 配置环境变量 使用命令行进入刚才解压的目录,然后通过export命令将交叉编译工具链添加到环境变量中。例如,假设解压工具链的目录为/home/username/arm-cross-compiler,则可以执行以下命令: export PATH=/home/username/arm-cross-compiler/bin:$PATH 将以上命令添加到~/.bashrc文件中,可以在每次登录银河麒麟时自动设置环境变量。 3. 配置交叉编译器 在终端中输入以下命令,创建一个链接的交叉编译器aarch64-linux-gnu-gcc: ln -s /home/username/arm-cross-compiler/bin/aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc 接着,可以通过以下命令来验证是否成功创建了链接: aarch64-linux-gnu-gcc --version 如果能够打印出编译器版本信息,则说明设置成功。 4. 编译程序 在银河麒麟中创建一个源代码文件,并使用交叉编译器来编译该程序。例如,可以使用以下命令来编译一个C语言源代码文件test.c: aarch64-linux-gnu-gcc -o test test.c 注意:在编写程序时一定要注意使用适用于aarch64架构的代码。 5. 运行程序 在编译成功后,可以通过以下命令来运行该程序: ./test 以上就是在银河麒麟中安装aarch64-none-linux-gnu的步骤。在执行安装过程时,需要注意一些细节,例如要确保下载的工具链适用于银河麒麟,遵循正确的配置顺序等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值