YAML教程
一、简介
YAML是一种人们可以轻松阅读的数据序列化格式,并且它非常适合对动态编程语言中使用的数据类型进行编码。YAML是YAML Ain't Markup Language简写,和GNU("GNU's Not Unix!")一样,YAML是一个递归着说“不”的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。YAML不是XML。它可以用作数据序列,配置文件,log文件,Internat信息和过滤。
参考:http://jyaml.sourceforge.net/download.html
http://justjavac.iteye.com/blog/694498
二、安装配置
1)java:下载jar包并导入
https://repo1.maven.org/maven2/org/jyaml/jyaml/1.3/jyaml-1.3.jar
或
http://www.findmaven.net/dependency/org.jyaml/jyaml/1.3/jyaml-1.3.jar
或
http://www.java2s.com/Code/Jar/j/Downloadjyaml13dgujar.htm
2)c:libyaml
方式1:yum方式
yum install libyaml-devel libyaml
方式2:下载libyaml并编译安装
wget http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz tar -zxvf yaml-0.1.5.tar.gz
$ ./configure
$ make
# make install
三、编程实例
参考:http://pyyaml.org/wiki/LibYAML
程度1:获取yaml版本信息
#include <yaml.h> #include <stdlib.h>
#include <stdio.h> #ifdef NDEBUG
#undef NDEBUG
#endif
#include <assert.h> int main(void)
{
int major = -1;
int minor = -1;
int patch = -1;
char buf[64]; yaml_get_version(&major, &minor, &patch);
sprintf(buf, "%d.%d.%d", major, minor, patch);
assert(strcmp(buf, yaml_get_version_string()) == 0); /* Print structure sizes. */
printf("sizeof(token) = %d\n", sizeof(yaml_token_t));
printf("sizeof(event) = %d\n", sizeof(yaml_event_t));
printf("sizeof(parser) = %d\n", sizeof(yaml_parser_t)); return 0;
}
编译
gcc -o example1 example1.c -lyaml
运行
程度2:
#include <yaml.h> #include <stdlib.h>
#include <stdio.h> #ifdef NDEBUG
#undef NDEBUG
#endif
#include <assert.h> int main(int argc, char *argv[])
{
int number; if (argc < 2) {
printf("Usage: %s file1.yaml ...\n", argv[0]);
return 0;
} for (number = 1; number < argc; number ++)
{
FILE *file;
yaml_parser_t parser;
yaml_document_t document;
int done = 0;
int count = 0;
int error = 0; printf("[%d] Loading '%s': ", number, argv[number]);
fflush(stdout); file = fopen(argv[number], "rb");
assert(file); assert(yaml_parser_initialize(&parser)); yaml_parser_set_input_file(&parser, file); while (!done)
{
if (!yaml_parser_load(&parser, &document)) {
error = 1;
break;
} done = (!yaml_document_get_root_node(&document)); yaml_document_delete(&document); if (!done) count ++;
} yaml_parser_delete(&parser); assert(!fclose(file)); printf("%s (%d documents)\n", (error ? "FAILURE" : "SUCCESS"), count);
} return 0;
}
编译
gcc -o example2 example2.c -lyaml
运行
YAML教程的更多相关文章
- 学习pyyaml
网上查了一圈,觉得较好的yaml教程有: YAML 语言教程 :http://www.ruanyifeng.com/blog/2016/07/yaml.html. 另外,在github的pyyaml库 ...
- 转: YAML 语言教程 from(阮一峰)
YAML 语言教程 from: http://www.ruanyifeng.com/blog/2016/07/yaml.html
- 转:spring boot log4j2配置(使用log4j2.yml文件)---YAML 语言教程
转:spring boot log4j2配置(使用log4j2.yml文件) - CSDN博客http://blog.csdn.net/ClementAD/article/details/514988 ...
- YAML 语言教程(转载)
用YAML语言读取配置是最快的,之前的suricata中用yaml读取了配置,并且在代码运行期间,对配置进行了维护,所以抽点时间,来了解一下YAML语言编程,下文虽然对YAML语言和JAVAScrip ...
- yaml语言教程
大家直接去看阮一峰的教程. http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt 简介 基本语法规则: 大小写敏感 使用缩进表示层级关系 缩进时不 ...
- 学习笔记:yaml语言教程
目录 1.YAML基本概念 1.1 简介 1.2 基本语法 1.3 支持的数据结构: 1.4 注意点 2.数据结构 2.1 字典 2.2 数组 2.3 纯量 2.4 强制类型转换,双! 2.5 字符串 ...
- Spring Boot2 系列教程 (五) | yaml 配置文件详解
自定义属性加载 首先构建 SpringBoot 项目,不会的看这篇旧文 使用 IDEA 构建 Spring Boot 工程. 首先在项目根目录 src >> resource >&g ...
- YAML 语言教程与使用案例
YAML语言教程与使用案例,如何编与读懂写YAML文件. YAML概要 YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写.在开发的这种 ...
- YAML基础教程
一.YAML介绍YAML参考了其他多种语言,包括:XML.C语言.Python.Perl以及电子邮件格式RFC2822.Clark Evans在2001年5月在首次发表了这种语言,另外Ingy döt ...
随机推荐
- Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)
Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本) Hive 安装依赖 Hadoop 的集群,它是运行在 Hadoop 的基础上. 所以在安装 Hive 之 ...
- R语言中的遗传算法详细解析
前言 人类总是在生活中摸索规律,把规律总结为经验,再把经验传给后人,让后人发现更多的规规律,每一次知识的传递都是一次进化的过程,最终会形成了人类的智慧.自然界规律,让人类适者生存地活了下来,聪明的科学 ...
- 更新OpenSSH
1.安装必要组件: yum install -y gcc openssl-devel pam-devel rpm-build 2.下载OpenSSH最新版本: https://ftp.openbsd. ...
- PS制作gif动图教程
之前做过一些动图,时间久了就忘记了,每次心血来潮想做的时候又要重新找资料,网上的教程都不够完整,因此整理了一份完整的教程,针对PS新手(对,没错,就是博主自己哈哈). 准备工作:photoshop.图 ...
- windows环境下简单Jenkins持续集成搭建
Jenkins是基于Java开发的持续集成工具,所以在安装Jenkins之前我们要确定电脑上已经安装了Java JDK并且环境变量配置正确,否则在启动使用java -jar Jenkins.war启动 ...
- selenium+python自动化91-unittest多线程生成报告(BeautifulReport)
前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备 ...
- 2018-2019-2 《网络对抗技术》Exp2 后门原理与实践 Week4 20165233
Exp2 后门原理与实践 实验内容 一.基础问题回答 1.例举你能想到的一个后门进入到你系统中的可能方式? 答:通过访问钓鱼网站,无意下载了一些图片或是文件.而这个图片或文件中携带后门. 2.例举你知 ...
- 0_Simple__simpleLayeredTexture
二维分层纹理 ▶ 源代码.用纹理方法把元素按原顺序从 CUDA3D 数组中取出来,求个相反数再加上层数放入全局内存,输出. #include <stdio.h> #include &quo ...
- leetcode557
public class Solution { public string ReverseWords(string s) { var list = s.Split(' ').AsEnumerable( ...
- leetcode521
public class Solution { public int FindLUSlength(string a, string b) { : Math.Max(a.Length, b.Length ...