[c++] libyaml과 간단 연결 목록 형식
YAML (YAML Ain’t Markup Language)은 사람과 기계 모두가 이해하기 쉬운 데이터 직렬화 양식입니다. libyaml은 YAML 데이터를 파싱하고 생성하기 위한 C 라이브러리입니다.
이 블로그 포스트에서는 libyaml을 사용하여 간단한 연결 목록 형식의 YAML 파일을 파싱하는 방법에 대해 알아보겠습니다.
libyaml 설치
먼저 libyaml을 시스템에 설치해야 합니다. 대부분의 리눅스 시스템에서는 패키지 관리자를 통해 libyaml을 설치할 수 있습니다. 예를 들어, Ubuntu에서는 다음과 같이 설치할 수 있습니다:
sudo apt-get install libyaml-dev
YAML 파일 예시
간단한 연결 목록 형식의 YAML 파일은 다음과 같이 구성될 수 있습니다:
people:
- name: John
age: 30
- name: Alice
age: 25
libyaml을 사용한 파싱 예제
아래는 libyaml을 사용하여 위의 YAML 파일을 파싱하는 간단한 예제 코드입니다:
#include <yaml.h>
#include <stdio.h>
int main() {
FILE *file = fopen("example.yaml", "r");
yaml_parser_t parser;
yaml_document_t document;
yaml_parser_initialize(&parser);
yaml_parser_set_input_file(&parser, file);
if (!yaml_parser_load(&parser, &document)) {
fprintf(stderr, "Failed to parse YAML\n");
return 1;
}
// iterate through the parsed YAML
yaml_node_t *node = yaml_document_get_root_node(&document);
if (node && node->type == YAML_SEQUENCE_NODE) {
for (yaml_node_item_t *item = node->data.sequence.items.start; item < node->data.sequence.items.top; item++) {
yaml_node_t *person = yaml_document_get_node(&document, *item);
// access person's properties (name, age)
}
}
yaml_document_delete(&document);
yaml_parser_delete(&parser);
fclose(file);
return 0;
}
이 예제 코드에서는 libyaml을 사용하여 example.yaml
파일을 파싱하고 연결 목록의 각 요소에 대한 정보에 접근하는 방법을 보여줍니다.
libyaml을 사용하면 YAML 데이터를 간단하게 파싱하고 필요한 정보를 추출할 수 있습니다. 또한, libyaml은 YAML 데이터를 생성하는 데도 사용할 수 있습니다.
더 많은 libyaml의 기능과 사용법에 대해 알아보려면 libyaml 문서를 참고하시기 바랍니다.