是否有广泛的C库用于从文件中读取名称/值对?

Jam*_*ris 7 c linux settings file-io

我的程序正在读取包含设置文件的各种文本行的文本文件.有些线路可能变得非常大.目前缓冲区大小为4096个字符.某些线路可能会超出此范围,无论是通过恶意还是由于程序中运行的各种因素.

当前的例程编写起来相当繁琐,现在我想扩展文件的可能内容,这将需要更多这些繁琐的重复代码.(这适用于设置类型文件,由name value对和偶尔的节标题组成.由于多个精度,某些数值需要作为字符串读取).

我想要的主要是读取没有缓冲区溢出的任意长度行.我刚刚发现getline可以为我做到这一点,但是,为了天堂的缘故,还有一个图书馆可以为我做这一切繁琐的工作吗?

编辑:

我不希望被迫=在名称和值之间放置一个符号,空格应该足以作为分隔符.

广泛使用,我的意思是该库应该在流行的Linux发行版的标准包中提供.

我知道libconfig但是我的要求似乎完全矫枉过正.

pio*_*otr 1

我的建议是DIY,因为这很容易。

  • 读取每一行

  • 计算分隔符之前和分隔符之后的字符数

  • 分配缓冲区

  • 并使用 sscanf 读取名称值对

    喜欢:

    sscanf(line, "%[^:]: %[^\n]", key, value);

你会很安全,因为你之前计算过字符sccanf