c语言怎么导入ifreq这个结构体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言怎么导入ifreq这个结构体相关的知识,希望对你有一定的参考价值。

给一个函数给你参考!

#include <in.h>
#include <string.h>
#include <if.h>

int main()

int i=0;
int sockfd;
struct ifconf ifconf;
unsigned char buf[512];
struct ifreq *ifreq;

//初始化ifconf
ifconf.ifc_len = 512;
ifconf.ifc_buf = buf;

if((sockfd = socket(AF_INET, SOCK_DGRAM, 0))<0)

perror("socket");
exit(1);

ioctl(sockfd, SIOCGIFCONF, &ifconf); //获取所有接口信息

//接下来一个一个的获取IP地址
ifreq = (struct ifreq*)buf;
for(i=(ifconf.ifc_len/sizeof(struct ifreq)); i>0; i--)

// if(ifreq->ifr_flags == AF_INET) //for ipv4
printf("name = [%s]\\n", ifreq->ifr_name);
printf("local addr = [%s]\\n",
inet_ntoa(((struct sockaddr_in*)&(ifreq->ifr_addr))->sin_addr));
ifreq++;
//

return 0;
参考技术A #include <net/if.h>

参考技术B #include <net/if.h>

C语言编程 结构体让多个CPP使用

定义个一结构体

让多个文件公用他 并且里面的数据通用 怎么弄?

变量声明不能放在头文件中,因为很容易造成重定义。
假如有如下结构体
typedef struct A

char a[10];
A;
那在main函数所在的cpp中,这样定一个该结构体的变量:
A a;
在其他需要使用该变量的cpp文件中,加如下语句:
extern A a;
这样其他cpp文件也就可以用了。
参考技术A 用include包含 定义的结构体 参考技术B 定义的结构体的部分保存为一个.h文件 其他.cpp用include导入

以上是关于c语言怎么导入ifreq这个结构体的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程 结构体让多个CPP使用

C语言怎么将结构体的内容复制到另一个结构体中

C语言结构体初始化问题

c语言 结构体的指针作为函数参数问题

C语言 怎么把文件中的信息储存到结构体数组中

C语言怎么给结构体里的结构体赋值?