当前位置: 首页 > 面试题库 >

在Linux上的C中使用INI文件

杜君浩
2023-03-14
问题内容

是否有使用C 读取用于Linux的INI文件等配置的标准方法?

我正在基于Linux的手持设备上工作,并用C编写代码。

否则,我想知道其他选择。

最终更新:

我已经探索甚至使用过LibConfig。但是占用空间很大,而且我的用法太简单了。因此,为了减少占用空间,我推出了自己的实现。该实现不是太通用,实际上到目前为止已经相当耦合了。启动html" target="_blank">应用程序时,配置文件将被解析一次,并设置为一些全局变量。


问题答案:

试试libconfig:

一个简单的库,用于处理结构化的配置文件,例如:test.cfg。与XML相比,此文件格式更紧凑,更易读。而且与XML不同,它具有类型感知功能,因此无需在应用程序代码中进行字符串解析。

Libconfig 非常紧凑— 是expat XML解析器库的一小部分。这使其非常适合内存受限的系统,例如手持设备。

该库包含针对C和C ++语言的绑定。它适用于POSIX兼容的UNIX和类似UNIX的系统(GNU / Linux,Mac OS
X,Solaris,FreeBSD),Android和Windows(2000,XP及更高版本)…



 类似资料:
  • 问题内容: 确实有两个问题: 是否有关于配置文件放置位置的标准/约定? 对于系统程序或准系统程序,它们似乎通常位于中。对于普通的应用程序或特权不足的程序,似乎不太清楚。 在处理程序选项时,有优先的标准层次结构吗?例如,命令行选项是否覆盖初始化文件和/或环境变量?反之亦然?还是这完全取决于开发人员? 问题答案: 通常,系统/全局配置存储在/ etc下的某个位置。 用户特定的配置存储在用户的主目录中,

  • 问题内容: 平台:Debian Wheezy 3.2.0-4-686-pae 编译器:GCC(Debian 4.7.2-5)4.7.2(代码:: Blocks) 我想将文件从一个位置移动到另一位置。移动到不同的驱动器或文件系统没有什么复杂的。我知道执行此操作的“标准”方法是简单地复制文件,然后删除原始文件。但是我想要某种方式来保留文件的所有权,模式,上次访问/修改等。我假设我必须先复制文件,然后再

  • 我找不到PHP。ini在我的服务器上的位置。我检查了所有堆栈溢出的答案,但找不到我的php。ini位置。 我有Linux、Cent OS和zPanel。PHP的最新版本。 我的电脑:LinuxMint15KDE。

  • 问题内容: 我知道如何在Mac OS上使用Xcode在Swift中访问C库,并且在Linux上也知道,但是如何在Linux上使用Swift这样的C库,如OpenGL? 问题答案: 使用系统模块导入OpenGL头文件:https : //github.com/apple/swift-package- manager/blob/master/Documentation/SystemModules.md

  • 问题内容: 我想使用系统蜂鸣器(并且只有在没有蜂鸣器/无法访问蜂鸣器时才使用扬声器)生成具有特定频率和长度(针对不同的声音信号)的蜂鸣声。我知道可以通过使用ioctl来做到这一点,但这需要root访问权限,而这是我所不希望的。 我知道我可以只使用“ beep”命令,但这将是一个依赖关系,如果可能的话,不应使用它(根本没有外部依赖关系,只有基本的linux库和C)。 我目前拥有的是以下代码(但这需要

  • 问题内容: 我正在寻找解决上述问题的解决方案。 这是我的“无效代码”。charsInCurrentBuffer始终返回-1! 问题答案: 当你从FD中,“用户的定位缓冲区和文件偏移都必须是文件系统的逻辑块大小的倍数”(引自手册页在Linux上)。其他环境对此可能有不同的约束,并且实际上是依赖于文件系统的。 通常情况并非如此(除非您很幸运)。 如果平台具有该功能,则应考虑使用该功能,或者只是分配一个