<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zagnix的专栏]]></title><description><![CDATA[目前主要从事MyCAT分布式中间件开发工作，对分布数据库，分布式存储比较感兴趣]]></description><link>https://blog.youkuaiyun.com/Zagnix</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Zagnix]]></copyright><item><title><![CDATA[Flex的简单使用-构建强大wc统计工具]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/79588188</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/79588188</guid><author>Zagnix</author><pubDate>Sat, 17 Mar 2018 00:02:24 +0800</pubDate><description><![CDATA[在使用Flex前，先简单介绍一下词法分析(lexical analysis) 和 语法分析(syntax analysis) 的概念


词法分析(lexical analysis):把输入分割成一个个有意义的词块，称为记号（token）
语法分析(syntax analysis)：确定通过语法解析出来的token是否如何关联的。


例如看一下如下C代码片段：

alpha = beta + g...]]></description><category></category></item><item><title><![CDATA[C++11 实现SQL Parser]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/79587999</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/79587999</guid><author>Zagnix</author><pubDate>Fri, 16 Mar 2018 23:01:05 +0800</pubDate><description><![CDATA[C++11 实现SQL Parser

从事MySQL数据库中间件开发，一直想自己实现一款SQL Parser，100%兼容MySQL SQL的语法, 终于下决心做这件事情了。 
    后面陆续写一些开发设计文章,待续…….....]]></description><category></category></item><item><title><![CDATA[在CentOS 上 调试 MySQL-5.7.x 或者 MySQL-8.0 源码]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/72857435</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/72857435</guid><author>Zagnix</author><pubDate>Sun, 04 Jun 2017 10:01:12 +0800</pubDate><description><![CDATA[使用GDB调试MySQL源码，便于日后分析MySQL源码打下基础]]></description><category></category></item><item><title><![CDATA[CentOS 上 编译MySQL-5.7.x 或者 MySQL-8.0 源码 及多实例安装]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/72857271</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/72857271</guid><author>Zagnix</author><pubDate>Sun, 04 Jun 2017 09:34:18 +0800</pubDate><description><![CDATA[通过MySQL源码编译方式安装MySQL数据库实例]]></description><category></category></item><item><title><![CDATA[统计源码行数命令：]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46830849</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46830849</guid><author>Zagnix</author><pubDate>Fri, 10 Jul 2015 14:53:56 +0800</pubDate><description><![CDATA[wc -l find ./ -name "*.scala";find -name "*.h"实战：统计spark-1.4.0核心代码行数：xxx@master:~/spark_src/spark-1.4.0/core/src/main/scala/org/apache/spark$ wc -l find ./ -name "*.scala";find -name "*.h" 
   1178 ./r]]></description><category></category></item><item><title><![CDATA[ubuntu15.04 开启root登陆]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46806609</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46806609</guid><author>Zagnix</author><pubDate>Wed, 08 Jul 2015 17:49:43 +0800</pubDate><description><![CDATA[创建文件： 
mkdir -p /etc/lightdm 
sudo vim /etc/lightdm/lightdm.conf添加如下内容： 
[SeatDefaults] 
autologin-user=root 
greeter-session=unity-greeter 
user-session=ubuntu 
greeter-show-manual-login=true 
allow-g]]></description><category></category></item><item><title><![CDATA[深入分析Linux自旋锁]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46545911</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46545911</guid><author>Zagnix</author><pubDate>Thu, 18 Jun 2015 11:29:45 +0800</pubDate><description><![CDATA[转载：http://blog.chinaunix.net/uid-20543672-id-3252604.html  作者：Tekkaman Ninja]]></description><category></category></item><item><title><![CDATA[对Linux系统休眠的理解]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46545893</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46545893</guid><author>Zagnix</author><pubDate>Thu, 18 Jun 2015 11:28:07 +0800</pubDate><description><![CDATA[转载：http://blog.chinaunix.net/uid-20543672-id-3248664.html  作者：Tekkaman Ninja]]></description><category></category></item><item><title><![CDATA[Linux内核中kfifo使用]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46536573</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46536573</guid><author>Zagnix</author><pubDate>Wed, 17 Jun 2015 18:02:59 +0800</pubDate><description><![CDATA[/*
 * Sample kfifo byte stream implementation
 *
 * Copyright (C) 2010 Stefani Seibold <stefani@seibold.net>
 *
 * Released under the GPL version 2 only.
 *
 */#include <linux/init.h>
#include <linux/m]]></description><category></category></item><item><title><![CDATA[apt-get使用总结]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46460757</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46460757</guid><author>Zagnix</author><pubDate>Thu, 11 Jun 2015 18:36:33 +0800</pubDate><description><![CDATA[专载：http://blog.chinaunix.net/uid-9525959-id-2001625.html[功能] 
ubuntu下面的软件包管理工具。[举例]目前常用的*更新本机中的数据库缓存： 
sudo apt-get update*查找包含部分关键字的软件包： 
sudo apt-cache search <你要查找的name>*安装指定的软件： 
sudo apt-get insta]]></description><category></category></item><item><title><![CDATA[获取路由器网络信息（mac，ip，router，dns，dhcp clients）]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46460211</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46460211</guid><author>Zagnix</author><pubDate>Thu, 11 Jun 2015 17:38:07 +0800</pubDate><description><![CDATA[1.获取接口的mac地址
char *get_macaddr(char *ifname)
{
    struct ifreq ifr;
    char *ptr;
    int skfd;
    static char if_hw[18] = {0};    if((skfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
        fprintf(s]]></description><category></category></item><item><title><![CDATA[Ubuntu 14.04 Linux内核版本3.16.0内核模块开发Makefile文件样板]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46445059</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46445059</guid><author>Zagnix</author><pubDate>Wed, 10 Jun 2015 18:01:13 +0800</pubDate><description><![CDATA[#!/bin/sh
ifneq ($(KERNELRELEASE), )    obj-m := rbtree_test.o   //改成自己的模块名称elsePWD :=$(shell pwd)
KVER ?=$(shell uname -r)
KDIR :=/lib/modules/$(KVER)/buildall:
    $(MAKE) -C $(KDIR) M=$(PWD)clean:]]></description><category></category></item><item><title><![CDATA[Linux 内核基础--rb_tree使用方法]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46444533</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46444533</guid><author>Zagnix</author><pubDate>Wed, 10 Jun 2015 17:32:55 +0800</pubDate><description><![CDATA[1.在你的所要使用的模块中包含头文件#include<linux/rb_tree.h>2.将rb_node嵌入到自己结构体中struct my_data{
    struct rb_node node;
    char key[32];
    char value[32]
};3.定义rb树的根，一般为全局变量struct rb_root my_root_tree = RB_ROOT;4.实现]]></description><category></category></item><item><title><![CDATA[Ubuntu-14.04 安装qemu-kvm调试Linux-3.16.0的内核（一）]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46443901</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46443901</guid><author>Zagnix</author><pubDate>Wed, 10 Jun 2015 16:51:15 +0800</pubDate><description><![CDATA[待续。。。。。。。。]]></description><category></category></item><item><title><![CDATA[Linux 内核基础--List使用方法]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46434937</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46434937</guid><author>Zagnix</author><pubDate>Wed, 10 Jun 2015 02:05:49 +0800</pubDate><description><![CDATA[1.引入头文件#include <linux/list.h>2.嵌入其他结构体中作为一个结构体成员struct fox{    int id;
    struct list_head list;
}；3.声明并初始化头结点struct list_head ptr_head;
INIT_LIST_HEAD(&ptr_head);4.操作list添加操作：   list_add(&fox_new.li]]></description><category></category></item><item><title><![CDATA[Linux内核实现List二个关键的宏offsetof 和 container_of]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/46427345</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/46427345</guid><author>Zagnix</author><pubDate>Tue, 09 Jun 2015 15:27:35 +0800</pubDate><description><![CDATA[二个宏定义在inux/kernel.h头文件1.offsetof 
offsetof宏的定义如下： 
    #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) 
关键之处在于将地址0强制转换为type类型的指针，从而定位到member在结构体中偏移位置。编译器认为0是一个有效的地址，从而认为0是type指针的起始地址。2.c]]></description><category></category></item><item><title><![CDATA[Linux 网络通信5种IO模式]]></title><link>https://blog.youkuaiyun.com/Zagnix/article/details/43489549</link><guid>https://blog.youkuaiyun.com/Zagnix/article/details/43489549</guid><author>Zagnix</author><pubDate>Wed, 04 Feb 2015 17:57:14 +0800</pubDate><description><![CDATA[Linux下的五种I/O模型
1)阻塞I/O（blocking I/O）
2)非阻塞I/O （nonblocking I/O）
3) I/O复用(select 和poll) （I/O multiplexing）
4)信号驱动I/O （signal driven I/O (SIGIO)）
5)异步I/O （asynchronous I/O (the POSIX
 aio_function]]></description><category></category></item></channel></rss>