|
程序从网卡配置文件中获得广播地址,为什么在主函数中得不到正确的值呢?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
bool get_ip(char *ip[]);
int main()
{
char *ipaddr[4]={""};
int i=0;
get_ip(ipaddr);
for(i=0;i<4;i++)
{
printf("222 %s\n",ipaddr);
}
}
bool get_ip(char *ip[])
{
FILE *fp;
char buff[256];
char *p;
char eth_cfg_name[4][128]={"/etc/sysconfig/network-scripts/ifcfg-eth0",
"/etc/sysconfig/network-scripts/ifcfg-eth1",
"/etc/sysconfig/network-scripts/ifcfg-eth2",
"/etc/sysconfig/network-scripts/ifcfg-eth3",};
int i=0,temp=0;
for(i=0;i<4;i++)
{
/*打开文件*/
if((fp=fopen(eth_cfg_name,"r"))==NULL)
{
printf("Cannot open %s!\n",eth_cfg_name);
continue;
}
/*读出文件内容,逐行读*/
while(!feof(fp))
{
fgets(buff,sizeof(buff),fp);
while(buff[temp]!='\0')
{
buff[temp]=toupper(buff[temp]);
temp++;
}
//printf("%s\n",buff);
if((p=strstr(buff,"BROADCAST"))!=NULL)
{
/*提取ip*/
ip=p+10;
printf("111 %s\n",ip);
}
}
fclose(fp);
}
return true;
} |
|