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コードでは、スクリプト言語のバインディングがより一般的です)。ソースディストリビューションのtestsディレクトリにサンプルコードがあります。最も包括的なのは、デコンストラクターの例のようです。長いですが、コメントが非常に多いので、簡単にフォローできます。

一般的に、YAMLがCコードにどれほど役立つかはわかりません。YAMLの最大の強みは、PythonやPerlなどのスクリプト言語で使用されるデータ型(任意のレベルにネストされたリストや辞書)に自然にマッピングされることです。このようなネストされた構造をYAMLに簡単にシリアル化できるため、魅力的です。なぜCコードにYAMLが必要なのか興味があります。

于 2009-11-10T18:11:18.333 に答える
1

この質問に対する2番目の回答には、ライブラリを使用してyamlファイルをより便利なものに解析するというもう少し良い例があります。

于 2009-11-10T16:53:46.043 に答える