- 博客(17)
- 收藏
- 关注
原创 Flex的简单使用-构建强大wc统计工具
在使用Flex前,先简单介绍一下词法分析(lexical analysis) 和 语法分析(syntax analysis) 的概念词法分析(lexical analysis):把输入分割成一个个有意义的词块,称为记号(token)语法分析(syntax analysis):确定通过语法解析出来的token是否如何关联的。例如看一下如下C代码片段:alpha = beta + g...
2018-03-17 00:02:24
807
原创 C++11 实现SQL Parser
C++11 实现SQL Parser从事MySQL数据库中间件开发,一直想自己实现一款SQL Parser,100%兼容MySQL SQL的语法, 终于下决心做这件事情了。 后面陆续写一些开发设计文章,待续…….....
2018-03-16 23:01:05
2302
1
原创 在CentOS 上 调试 MySQL-5.7.x 或者 MySQL-8.0 源码
使用GDB调试MySQL源码,便于日后分析MySQL源码打下基础
2017-06-04 10:01:12
1236
原创 统计源码行数命令:
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
2015-07-10 14:53:56
1331
原创 ubuntu15.04 开启root登陆
创建文件: 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
2015-07-08 17:49:43
1461
转载 深入分析Linux自旋锁
转载:http://blog.chinaunix.net/uid-20543672-id-3252604.html 作者:Tekkaman Ninja
2015-06-18 11:29:45
510
转载 对Linux系统休眠的理解
转载:http://blog.chinaunix.net/uid-20543672-id-3248664.html 作者:Tekkaman Ninja
2015-06-18 11:28:07
559
原创 Linux内核中kfifo使用
/* * 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
2015-06-17 18:02:59
2596
转载 apt-get使用总结
专载:http://blog.chinaunix.net/uid-9525959-id-2001625.html[功能] ubuntu下面的软件包管理工具。[举例]目前常用的*更新本机中的数据库缓存: sudo apt-get update*查找包含部分关键字的软件包: sudo apt-cache search <你要查找的name>*安装指定的软件: sudo apt-get insta
2015-06-11 18:36:33
481
原创 获取路由器网络信息(mac,ip,router,dns,dhcp clients)
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
2015-06-11 17:38:07
2607
原创 Ubuntu 14.04 Linux内核版本3.16.0内核模块开发Makefile文件样板
#!/bin/shifneq ($(KERNELRELEASE), ) obj-m := rbtree_test.o //改成自己的模块名称elsePWD :=$(shell pwd)KVER ?=$(shell uname -r)KDIR :=/lib/modules/$(KVER)/buildall: $(MAKE) -C $(KDIR) M=$(PWD)clean:
2015-06-10 18:01:13
741
原创 Linux 内核基础--rb_tree使用方法
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.实现
2015-06-10 17:32:55
2828
1
原创 Linux 内核基础--List使用方法
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
2015-06-10 02:05:49
911
1
原创 Linux内核实现List二个关键的宏offsetof 和 container_of
二个宏定义在inux/kernel.h头文件1.offsetof offsetof宏的定义如下: #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) 关键之处在于将地址0强制转换为type类型的指针,从而定位到member在结构体中偏移位置。编译器认为0是一个有效的地址,从而认为0是type指针的起始地址。2.c
2015-06-09 15:27:35
659
原创 Linux 网络通信5种IO模式
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
2015-02-04 17:57:14
692
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人