繁体   English   中英

我的C程序从配置中接收一些文件路径的最简单方法是什么?

[英]What is the simplest way for my C program to receive some file paths from configuration?

我有一个当前可通过命令行参数配置的应用程序

myprog  -fooFile 'foo.txt' -barFile 'bar.txt'

命令行参数有点麻烦,因此我想为这些配置提供其他途径,但令我有些失望的是,它看上去比应该教的要复杂。

解决方案1:使用环境变量

我可以使程序查找MYPROG_FOO_FILEMYPROG_BAR_FILE加密变量。 实现只是一个getenv但是env变量是全局变量,会增加混乱,并且也很难配置。 特别适用于GUI应用程序,因为许多窗口管理器在初始化期间不提供“ .profile”。

解决方案2:使用配置文件

由于fooFile和progFile是静态配置值,因此最好将它们放在配置文件中的某个位置:

fooFile = /home/hugomg/foo.txt
barFile = /home/hugomg/bar.txt

但是afaik在C语言中没有简单的方法可以从文件中读取任意长的字符串。 我真的需要做一个循环来为此继续分配缓冲区吗?

或者,由于我所有的值都是文件名,因此在某处是否有#define指定路径字符串的最大大小?

您使用简单语法的配置文件方法对我来说很好。

由于您使用的是Linux,因此可以使用getline读取文件。 它可以处理任意长度的行并为您管理内存分配。

如果您的应用程序具有GUI,则可能希望用户从应用程序内部对其进行配置。 在这种情况下,您可能希望使用数据库来存储您的配置; 这样,您就可以验证输入的数据,因此您的用户不会写入错误的配置文件。 我建议为此使用SQLite:它在文件中提供了完整的数据库,并且非常易于使用。

http://www.sqlite.org/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM