免费注册 查看新帖 |

Chinaunix

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

怎么新建个配置文件用来保存设置参数呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-21 17:52 |只看该作者 |倒序浏览
怎么新建个配置文件用来保存设置参数呢? 建立一个普通的文件就行吗???

论坛徽章:
0
2 [报告]
发表于 2011-06-25 18:32 |只看该作者
等高手来解答

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
3 [报告]
发表于 2011-06-25 21:57 |只看该作者
配置文件没啥特别的吧。

无非就是可能会设置什么选项,选项的值是多少。在j2ee中大多是xml文件,linux 下多是个 .conf 文件

你可以参考 mysql的配置文件 my.cnf   就是个普通的文件。

论坛徽章:
0
4 [报告]
发表于 2011-06-25 22:15 |只看该作者
配置文件没啥特别的吧。

无非就是可能会设置什么选项,选项的值是多少。在j2ee中大多是xml文件,linux 下 ...
crazyhadoop 发表于 2011-06-25 21:57



    嗯,谢谢,其实我的需求就是存放设置参数,比如设备号等等,上电的时候可以调用。这也算是配置文件吧。 我以前以为简单的就是把参数写进文件里,需要的时候根据leek定位等把要读的数据读回来处理,看来我想的太简单了

论坛徽章:
0
5 [报告]
发表于 2011-06-25 22:59 |只看该作者
我也想知道

论坛徽章:
0
6 [报告]
发表于 2011-06-25 23:49 |只看该作者
本帖最后由 bbxyard 于 2011-06-25 23:57 编辑

配置文件这个玩意不是太好。
如果程序不大的话, 建议楼主可以用命令行,getopt getopt_long函数来解析命令行,非常方便.
用命令行显得linux的程序更加KISS(Keep It Stupid, Simple),就一个可执行文件多方便。
你看sed,awk那么强大,就不是托家带口的噢
带上个配置文件,部署麻烦不说,不适合批处理--同时运行多例程的情况.

在windows下有INI的读写库.
Linux本身没有提供这样的函数, 楼主可以自己写一个,无非就是建个map、hash表之类的用C、C++都容易实现,网上也有不少源码的。
如果真的用到配置文件了,说明楼主程序也上规模了,实在不行就再发明个“轮子”得了.
还有如果是在公司的话,一般这种“轮子”,都有的,完全可以用公司的.
同时大型项目的话,配置文件用XML也不错,这个免费名库太多了。。。

说了这么多,如果LZ还想配置的话,可以用
shell脚本(windows下batch也有相同功效) + 命令行 的方式.
配置的话,完全可以在shell脚本里配置(这里可以配置多个可执行文件的例程喽,相同的配置用个变量保存之,方便).
改shell的配置用awk sed很方便噢!!

Linux的命令行+管道 + shell
linux最爽的就是批处理工作,shell就像是“胶水”把这些强大的小工具连起来,发挥强大的威力{:2_172:}
这个其实小弟也在公司混的一些经验罢了,是我推荐的一种方式,也是个人意见哈
我们公司配置文件解析windows、linux都是现成的。也是大型项目用,自己也懒得造轮子了.
小工具,getopt也有windows版的,我非常喜欢getopt哈...

论坛徽章:
0
7 [报告]
发表于 2011-06-26 01:33 |只看该作者
配置文件这个玩意不是太好。
如果程序不大的话, 建议楼主可以用命令行,getopt getopt_long函数来解析命令 ...
bbxyard 发表于 2011-06-25 23:49



    不知道您造的轮子可否“借”下呢 呵呵,还是谢谢您的指点!

论坛徽章:
0
8 [报告]
发表于 2011-06-26 23:32 |只看该作者
本帖最后由 bbxyard 于 2011-06-26 23:36 编辑

回复 7# 雪中的紫诺

我现在水平也一般,先前在网上看过一些思想,写过一个配置解析类,老早的时候在自己的小工具里用过.
我们公司有自己的配置管理类,以及后来学习了getopt,小工具不用配置文件了.

我们公司的“配置”代码有些复杂,支持回写、目录树等等,同时依赖低层体系,不方便公开。

LZ不嫌弃,那就参考一下我的代码的哈, 用起来应该还是比较方便的:
就一个"cfg_mgr.hpp"文件, 随拷随用. 支持"#;"两种注释风格; 支持键值对间的“=”前后空格TAB字符自动忽略.
代码比较简单, 不过没有在复杂场景下用过,可能会有小bug,楼主自己看看吧,希望对楼主有帮助哈

cfg_mgr_src_demo.zip (4.27 KB, 下载次数: 110)

论坛徽章:
0
9 [报告]
发表于 2011-06-27 15:04 |只看该作者
C++?我还的改成C的,呵呵,非常感谢了!

论坛徽章:
0
10 [报告]
发表于 2011-06-27 18:14 |只看该作者
C++?我还的改成C的,呵呵,非常感谢了!
雪中的紫诺 发表于 2011-06-27 15:04


是的.C++主要是方便描述思想, 一个hpp文件就OK啦,易于使用.
这个配置文件解析,将所有配置都加载到了内存中.(用std::map保存; 用C的话,光低层库,就得写不少代码, 当然了你们公司有底层库,你借助那个实现应该也是很容易的)

有关配置文件使用,还有类似windowsAPI--GetPrivateProfileString的思路,这个可以不缓冲解析后的数据,调一次这个API,IO一下,然后查找到相应"Section"和"Key",把值取出来,这个算法简单些,网上也有不少介绍,LZ可以在google里看看.

还有一种思路,LZ不嫌麻烦的话,把我的文件,编译成一个so库,提供类似GetPrivateProfileString、GetPrivateProfileInt两个C版API即可.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP