linux conf.c,用C读取用户配置文件.conf的两个示例

buf[i]=tolower(buf[i]);

if(strcmp(buf,"name")==0)

{  strncpy(name,p,sizeof(name)-1); //char *strncpy(char *dest, const char *src, size_t n);

name[sizeof(name)-1]=0;

m_name=name;

}

else if(strcmp(buf,"password")==0)

{

strncpy(password,p,sizeof(password)-1); password[sizeof(password)-1]=0;

m_password=password;

}

else if(strcmp(buf,"authenticationmode")==0)

{ authenticationMode=atoi(p);

m_authenticationMode=authenticationMode; }

else if(strcmp(buf,"nic")==0)

{

for(i=0; istrncpy(nic,p,sizeof(nic)-1); nic[sizeof(nic)-1]=0; m_nic=nic;

}

else if(strcmp(buf,"echointerval")==0)

{ echoInterval=atoi(p);   m_echoInterval=echoInterval;  }

else if(strcmp(buf,"intelligentreconnect")==0)

{ intelligentReconnect=atoi(p);  m_intelligentReconnect=intelligentReconnect; }

else if(strcmp(buf,"fakeaddress")==0)

{

strncpy(fakeAddress,p,sizeof(fakeAddress)-1);

fakeAddress[sizeof(fakeAddress)-1]=0;

if( inet_pton(AF_INET,fakeAddress,m_ip)<=0 )

err_msg("invalid fakeAddress found in Dot1xClient.conf, ignored...\n");

else m_fakeAddress=fakeAddress;

}

else continue;

}

if(ferror(fp)) err_quit("cannot read Dot1xClient.conf ! check it.\n");

fclose(fp);

if((m_name==NULL)||(m_name[0]==0)) err_quit("invalid name found in Dot1xClient.conf!\n");

if((m_password==NULL)||(m_password[0]==0)) err_quit("invalid password found in Dot1xClient.conf!\n");

if((m_authenticationMode<0)||(m_authenticationMode>1))

err_quit("invalid authenticationMode found in Dot1xClient.conf!\n");

if( (m_nic==NULL) || (strcmp(m_nic,"")==0) ||  (strcmp(m_nic,"any")==0) )

err_quit("invalid nic found in Dot1xClient.conf!\n");

if((m_echoInterval<0)||(m_echoInterval>100))

err_quit("invalid echo interval found in Dot1xClient.conf!\n" );

if((m_intelligentReconnect<0)||(m_intelligentReconnect>1))

err_quit("invalid intelligentReconnect found in Dot1xClient.conf!\n");

/*printf("m_name=%s\n",m_name);

printf("m_password=%s\n",m_password);

printf("m_nic=%s\n",m_nic);

printf("m_authenticationMode=%d\n",m_authenticationMode);

printf("m_echoInterval=%d\n",m_echoInterval);

printf("m_intelligentReconnect=%d\n",m_intelligentReconnect);//NOT supported now!!

printf("m_fakeAddress=%s\n",m_fakeAddress); */

//just set them to zero since they don't seem to be important.

memset(m_netgate,0,sizeof(m_netgate));  memset(m_dns1,0,sizeof(m_dns1));

}

void checkconfig()

{

char line[100];

printf("checking user config...\n");

while(fgets(line,100,file))

{

line[strlen(line)-1]='\0';//add a flag of string end

if(!memcmp("username",line,strlen("username")))//if find username

{

memcpy(usrData.username,(line+sizeof("username")),sizeof(usrData.username));

printf("%s\n",usrData.username);

continue;

}

if(!memcmp("password",line,strlen("password")))

{

memcpy(usrData.password,(line+sizeof("password")),sizeof(usrData.password));

printf("********\n");

continue;

}

if(!memcmp("Ip",line,strlen("Ip")))

{

memcpy(usrData.Ip,(unsigned char *)(line+sizeof("Ip")),sizeof(usrData.Ip));

sprintf(strIP,"%d.%d.%d.%d",usrData.Ip[0],usrData.Ip[1],usrData.Ip[2],usrData.Ip[3]);//先格式化一下字符窜

printf("%s\n",strIP);

continue;

}

if(!memcmp("Mac",line,strlen("Mac")))

{

memcpy(usrData.Mac,(unsigned char *)(line+sizeof("Mac")),sizeof(usrData.Mac));

printf("%02x-%02x-%02x-%02x-%02x-%02x\n",usrData.Mac[0],usrData.Mac[1],

usrData.Mac[2],usrData.Mac[3],usrData.Mac[4],usrData.Mac[5]);

continue;

}

if(!memcmp("nic",line,strlen("nic")))

{

memcpy(usrData.nic,(line+sizeof("nic")),sizeof(usrData.nic));

printf("%s\n",usrData.nic);

break;

}

}

fclose(file);

}

void writeconfig()

{

file=fopen("dot1xClient.conf","w");

fputs("username=",file);

fputs(usrData.username,file);

fputs("\n",file);

fputs("password=",file);

fputs(usrData.password,file);

fputs("\n",file);

fputs("Ip=",file);

fputc(usrData.Ip[0],file);

fputc(usrData.Ip[1],file);

fputc(usrData.Ip[2],file);

fputc(usrData.Ip[3],file);

fputs("\n",file);

fputs("Mac=",file);

fputc(usrData.Mac[0],file);

fputc(usrData.Mac[1],file);

fputc(usrData.Mac[2],file);

fputc(usrData.Mac[3],file);

fputc(usrData.Mac[4],file);

fputc(usrData.Mac[5],file);

fputs("\n",file);

fputs("nic=",file);

fputs(usrData.nic,file);

fputs("\n",file);

fclose(file);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值