2

我想使用一个简单的 C 程序读取一个精简的 YAML 文件。我认为最好的方法是使用以下库:Pyyaml.org。

阅读wiki页面后,我尝试在这里使用一些示例:http: //pyyaml.org/browser/libyaml/branches/stable/tests/ 但是对于像我这样的菜鸟来说,理解起来并不是很简单。

例如,如果我得到这个更简单的 YAML 文件(名为test.yml):

test:
  - {conf: hi}
  - {conf: test}
  - {conf: abc}

我该怎么做才能做这样的事情:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
  /* I do not really see how to load the file here... */

  char *conf[3] = {"hi", "test", "abc"}; /* configuration of the YAML file */

  int i;
  for (i = 0; i < 3; i++)
  {
    printf("content: %s\n", conf[i]);
  }

  return 0;
}

...但是来自给定的 YAML 文件?

非常感谢您的任何建议!

4

2 回答 2

2

libyaml 似乎是基于事件的,这通常意味着它针对速度进行了调整,而不是针对易用性进行了调整。而且周围的例子并不多(至少对于原始的 C 代码,脚本语言绑定更流行)。源代码分发在测试目录中有一些示例代码。最全面的似乎是解构示例。它很长,但评论很好,所以很容易理解。

一般来说,我不确定 YAML 对 C 代码有多大用处。YAML 的最大优势在于它可以自然地映射到 Python 和 Perl 等脚本语言使用的数据类型——列表和字典,嵌套到任意级别。将此类嵌套结构简单地序列化为 YAML 的能力使其具有吸引力。我很好奇你为什么需要 YAML 来编写 C 代码。

于 2009-11-10T18:11:18.333 回答
1

这个问题的第二个答案有一个更好的例子,使用该库将 yaml 文件解析成更有用的东西。

于 2009-11-10T16:53:46.043 回答