免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4280 | 回复: 18
打印 上一主题 下一主题

有关在UNIX下用C写一个读配置文件的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-23 16:29 |只看该作者 |倒序浏览
我想请教高人一个问题:
  有一个配置文件是Config.txt,其中每行左边是变量名中间是等号右边是变量的值如:(格式不变)
name="Maico"
sex="男"
age="28"
  现在要写一个函数传入形参为变量名和一个内存地址,函数返回“0”表示没有找到这个变量“1”表示找到了这个变量,并把变量的值放入形参的内存地址中。
  请帮我提供源码,谢谢高人!!!急! [/swf]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2003-02-23 16:38 |只看该作者

有关在UNIX下用C写一个读配置文件的问题

Test

论坛徽章:
0
3 [报告]
发表于 2003-02-23 16:40 |只看该作者

有关在UNIX下用C写一个读配置文件的问题

我不知道楼上的那位道兄是什么意思?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2003-02-23 16:47 |只看该作者

有关在UNIX下用C写一个读配置文件的问题

我这儿有一个现成的。
只不过是按照 WINDOWS 的 INI 格式的。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2003-02-23 16:50 |只看该作者

有关在UNIX下用C写一个读配置文件的问题

  1. /***********************************************
  2. ### 函数名  : ReadConfig
  3. ### 功能    : 读配置文件(config.ini)  
  4. ### 入参    : char *scetion 主配置项目名称,
  5. ###                 char *item    子配置项目名称,
  6. ###                 char *Default 当读取配置失败时取此默认值
  7. ### 出参    : char * value        所读得的配置值
  8. ### 调用举例: ReadConfig( "config.ini", "Main", "IP", tmpStr, "127.0.0.1" );
  9. ### 作者    :  Flw
  10. ### 修改日期: 2001-12-18
  11. ************************************************/
  12. int         ReadConfig( filename, scetion, item, value, Default )
  13. char *filename;
  14. char *scetion;
  15. char *item;
  16. char *value;
  17. char *Default;
  18. {
  19.             FILE         *fp;
  20.             char         readStr[200], tmpstr[ 31 ];
  21.             int findScetion = 0;
  22.    
  23.             if( ( fp = fopen(filename, "r") ) == NULL )
  24.             {
  25.                 return -1;
  26.             }

  27.             while(!feof(fp))
  28.             {
  29.                         memset( readStr, 0x00, sizeof( readStr ) );
  30.                 fgets( readStr, 80, fp );
  31.                         readStr[strlen(readStr)-1] = 0;                // 去掉换行符 '0x0A'
  32.                 memset(tmpstr, 0, sizeof(tmpstr));

  33.                 if (readStr[0] == '[')
  34.                 {
  35.                             findScetion = 0;
  36.                             memcpy(tmpstr, readStr + 1, strlen(scetion) );

  37.                             if (memcmp(scetion, tmpstr, strlen(tmpstr) ) == 0)
  38.                             {
  39.                                 findScetion = 1;
  40.                             }
  41.                 }
  42.                 else
  43.                 {
  44.                             if (findScetion == 0) continue;

  45.                             if (memcmp(readStr, item, strlen(item)) == 0)
  46.                             {
  47.                                                 strcpy(value, readStr + strlen(item) + 1);
  48.                                 break;
  49.                             }
  50.                 }
  51.             }

  52.             fclose(fp);

  53.             if (findScetion == 0)
  54.             {
  55.                 if ( Default != NULL )
  56.                 {
  57.                             strcpy(value, Default);
  58.                             return 1;
  59.                 }
  60.                 return -1;
  61.             }

  62.             return 1;
  63. }
复制代码

论坛徽章:
0
6 [报告]
发表于 2003-02-23 16:54 |只看该作者

有关在UNIX下用C写一个读配置文件的问题

谢谢了,不过我可以参考一下!
tomken 该用户已被删除
7 [报告]
发表于 2003-02-23 18:29 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
8 [报告]
发表于 2003-02-24 12:24 |只看该作者

有关在UNIX下用C写一个读配置文件的问题

sco下有一个现成的ftok(filename,key)
直接从文件中获得key指定的参数,多简单。

论坛徽章:
0
9 [报告]
发表于 2003-02-24 12:29 |只看该作者

有关在UNIX下用C写一个读配置文件的问题

有没有哪位高人就我上面的问题给我写一个不要那么复杂的Code,只要符合要求就可以了,谢了,楼上的我还是看不明白也!

论坛徽章:
0
10 [报告]
发表于 2003-02-24 12:39 |只看该作者

有关在UNIX下用C写一个读配置文件的问题

ftok是生成键值的,别听他胡说。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP