如何使用 libyaml 解析 C 程序中的多个后续 YAML 文件?

问题描述 投票:0回答:1

我正在编写一个C程序,其中需要在启动时解析多个YAML配置文件。最初,我只是让它使用单个文件来简单开始,但现在我正在更改它以解析所有可用的配置文件,我遇到了一个问题,如果我只是使用

yaml_parser_set_input_file()
设置一个新的输入文件,我点击断言,它告诉我只能设置源一次。那么什么给出呢?如何解析多个文件?

c libyaml
1个回答
0
投票

我通过初始化然后删除每个输入文件的解析器来解决这个限制。像这样的东西:

#include <yaml.h>

int main(int argc, char* argv[]) {
    yaml_parser_t parser;

    // Initial setup logic

    while (files_to_process) {
        yaml_parser_initialize(&parser);
        yaml_parser_set_input_file(&parser, input);

        while (events_to_parse) {
            // Event processing logic
        }

        yaml_parser_delete(&parser);
    }        
}

这对我有用。感觉应该可以以更好的方式做到这一点,但我找不到。

© www.soinside.com 2019 - 2024. All rights reserved.