我正在编写一个C程序,其中需要在启动时解析多个YAML配置文件。最初,我只是让它使用单个文件来简单开始,但现在我正在更改它以解析所有可用的配置文件,我遇到了一个问题,如果我只是使用
yaml_parser_set_input_file()
设置一个新的输入文件,我点击断言,它告诉我只能设置源一次。那么什么给出呢?如何解析多个文件?
我通过初始化然后删除每个输入文件的解析器来解决这个限制。像这样的东西:
#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);
}
}
这对我有用。感觉应该可以以更好的方式做到这一点,但我找不到。