linux编程(C语言读取配置文件)
2012-04-23 16:33
197 查看
linux编程(C语言读取配置文件)
2009年10月31日 星期六 15:49
2009年10月31日 星期六 15:49
#include<stdio.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #include<string.h> #define BUFFSIZE 100 int read_cfg(const char *file_name,const char *key,char *value) { FILE *fd; fd=fopen(file_name,"r"); if (fd==NULL) return 1; char item[BUFFSIZE]; memset(item,0,BUFFSIZE); int index=0; while(fgets(item,BUFFSIZE,fd)!=EOF) { char *temp=item; char *analyze=temp; if (*temp=='#') continue; int key_start=0,key_end=0,val_start=0,val_end=0,parse=0,parse_locate=0; int flag=1; while(temp!=EOF&&*temp!='\0'&&*temp!='\n') { char find_char=*(temp++); if (find_char=='=') { parse++; if (parse==1) parse_locate=flag; } if (find_char!=' '&&!parse) { if (key_start==0) { key_start=flag; if (*temp=='=') key_end=key_start; } } if (find_char!=' '&&!parse&&key_start) { key_end=flag; } if (find_char!=' '&&parse==1&&parse_locate!=flag&&!val_start) val_start=flag; if (find_char!=' '&&val_start) val_end=flag; flag++; } if (key_start*key_end*val_start*val_end) { int index_tmp; char * key_tmp,*val_tmp,*key_result,*val_result; int key_len=key_end-key_start+1; int val_len=val_end-val_start+1; key_tmp=(char *)malloc(key_len); val_tmp=(char *)malloc(val_len); memset(key_tmp,0,key_len); memset(val_tmp,0,val_len); key_result=key_tmp; val_result=val_tmp; for(index_tmp=1;(analyze!=NULL)&&*(analyze)!='\n'&&*(analyze)!='\0';index_tmp++) { if (index_tmp>=key_start&&index_tmp<=key_end) *(key_tmp++)=*analyze; if (index_tmp>=val_start&&index_tmp<=val_end) *(val_tmp++)=*analyze; analyze++; } if (!strcmp(key,key_result)) { while(val_len--) *(value++)=*(val_result++) ; *val_result='\0'; fclose(fd); return 0; } } } close(fd); return 3; } int main(int argc,char *argv[]) { char *key="w"; char *value=(char *)malloc(20); memset(value,0,20); int flag=read_cfg("cfg.txt",key,value); if (flag==1) printf("open file error"); printf(" filename=%s key=%s, value=%s \n","cfg.txt","test",value); } |
相关文章推荐
- Linux下用C语言读取配置文件
- Linux环境用C语言实现读取配置文件来区分产品的多个版本以及多个功能
- linux用户登陆的读取配置文件过程
- 读取到配置文件的C语言的接口实现
- Linux下解析配置文件和GKeyFile读取配置文件
- Linux下的C语言编程——系统调用read和write函数实现文件拷贝
- Linux下读取配置文件
- linux中读取配置文件的方法
- linux读取自定义的配置文件方法
- JAVA通信编程(二)——如何读取java的properties配置文件(插播)
- linux读取配置文件(C语言版)
- C语言 读取配置文件
- UNIX-LINUX C语言编程->实验室->多次打开文件实验
- JAVA通信编程(二)——如何读取java的properties配置文件(插播)
- linux下c语言 读取文件
- Linux下的C语言编程——文件操作
- C语言读取配置文件
- C语言读取配置文件
- Linux下C语言高级编程必备!(附多文件编程代码)
- ADO.NET数据库编程 利用应用程序配置文件进行数据的读取