linux用c++获取mac地址,不使用 ioctl(sock, SIOCGIFCONF, &ifc)获取网络接口名称,这个接口有时会返回-1获取不到,换方法获取
1.弃用 SIOCGIFCONF 获取网络接口名称列表:
//获取所有网络接口列表
ifc.ifc_len = sizeof(buf);
ifc.ifc_buf = buf;
if (ioctl(sock, SIOCGIFCONF, &ifc) == -1)
{ printf("ioctl error\n"); return -1; }
2.全部代码
#include <ros/ros.h>
#include <ros/package.h>
#include "src/utils/Rotation3DUtils.h"
#include "disinfect_srvs/nodeNameList_srvs.h"
#include <QtWidgets/QApplication>
#include <QDebug>
#include <QTimer>
//============获取mac==================
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <netinet/in.h