mysqld.cc启动分析及运行过程(题目取大了,不好意思)
mysql源文件的压缩文件mysql-5.7.12.tar.gz有48.2Mb,这么大个家伙。
以前学c语言什么的,觉得尼玛个臭c可以干嘛呀,敢看了源文件我彻底震精了,光是一个THD类的说明就占了3000多行,
留我风中凌乱,感慨人类软件工程之伟大,喂猫本科不是或者读研不是学计算机捏。
直接去看局部的类的话肯定要看晕,所以感觉是不是从主线入手好点呢,从驱动程序main先入手吧,然后找到了解压后mysql-5.7.12\sql的mysql.cc,
结果找了半天,个鬼int main( )都没有看到就看到了这个:
int mysqld_main(int argc, char **argv)
我想,这驱动程序或者入口程序不应该是int main( )么,后来上网一查main( )函数尼玛在\sql\main.cc中定义的。
之前自己闷头看源码,结果太复杂,又没有上网查查资料,搞得闹笑话了。
main.cc的源代码很简单,就是一个调用mysqld_main( )的过程:
/*
main() for mysqld.
Calls mysqld_main() entry point exported by sql library.
这里是调用mysqld_main()的入口点,终于把你给抓到了
*/
extern int mysqld_main(int argc, char **argv); // 声明在别处存在这个函数mysqld_main() int main(int argc, char **argv)
{
return mysqld_main(argc, argv); // 调用mysqld_main()
}
当我感叹main.cc简单的时候,mysqld.cc毫不留情的扇了我一巴掌,大概是9300行,腻酿哦!
头文件mysqld.h大概是980行,里面有好多好多的声明。
mysqld.cc中有两个mysqld_main( )函数
写到这不得不停下来,c基础不好,要去看下ifdef,ifndef什么的。
mysqld.cc启动分析及运行过程(题目取大了,不好意思)的更多相关文章
- 启动Tomcat一闪而过——分析及解决过程
启动Tomcat一闪而过--分析及解决过程 嗯,昨天将有关JDK的知识稍微整理了一下,现在稍微整理一下有关Tomcat的! 1:Tomcat是什么? Tomcat是当今世界上使用最为广泛的.开源免费的 ...
- 老李推荐:第8章5节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-运行测试脚本
老李推荐:第8章5节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-运行测试脚本 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化 ...
- 老李推荐:第8章1节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-运行环境初始化
老李推荐:第8章1节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-运行环境初始化 首先大家应该清楚的一点是,MonkeyRunner的运行是牵涉到主机端和目 ...
- Linux内核源码分析--内核启动之zImage自解压过程
参考: http://blog.chinaunix.net/uid-20543672-id-3018233.html Linux内核编译流程分析 linux2.6内核启动分析--李枝果(不看是你的损失 ...
- Linux内核源码分析--内核启动之zImage自解压过程【转】
转自:https://www.cnblogs.com/pengdonglin137/p/3838245.html 阅读目录(Content) zImage来历 piggy.gz压缩文件的特点 vmli ...
- 老李推荐:第8章7节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-小结
老李推荐:第8章7节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-小结 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性 ...
- appium界面运行过程(结合日志截图分析)
appium界面运行过程: 1.启动一个http服务器:127.0.0.1:47232.根据测试代码setUp()进行初始化,在http服务器上建立一个session对象3.开始调用adb,找到连接上 ...
- 分析system_call中断处理过程
分析system_call中断处理过程 上周我们使用gcc内嵌汇编调用系统调用,这次我们具体分析下过程. 将getpid嵌入menuos 代码从github下载,步骤如下: 1. 增加一个函数,get ...
- mkimage工具 加载地址和入口地址 内核启动分析
第三章第二节 mkimage工具制作Linux内核的压缩镜像文件,需要使用到mkimage工具.mkimage这个工具位于u-boot-2013. 04中的tools目录下,它可以用来制作不压缩或者压 ...
随机推荐
- 老毛桃pe装机工具一键还原系统
系统崩溃后,很多菜鸟朋友会六神无主,不知接下来怎么办.如果是老手,已经屡见不鲜了,因为只需一键还原系统就可以恢复到原来的工作状态.下面不妨跟小编一起继续看看怎么一键还原系统. ①制作一个老毛桃win ...
- HDUOJ--1865 1string
1sting Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- linux下socket编程常用头文件
sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数n ...
- SVN解决创建文件时不带锁
解决创建文件时不带锁 C:\Documents and Settings\你的用户名\Application Data\Subversion 找到上面的用户路径 打开config添加 ### ...
- Python学习笔记015——readline与readlines的区别
示例1 读取同样一个文件binary_read_1.txt. 春眠不觉晓,处处闻啼鸟. 夜来风雨声,花落知多少. 其中该文件内容被下段代码读出(注意,这里是采用的readlines) f = open ...
- PLSQL_统计信息系列02_统计信息的对象
20150505 Created By BaoXinjian
- 如何发布打包并发布自己的Android应用(APP)
如何将android项目打包成apk 分类: android 2012-08-29 10:12 1678人阅读 评论(1) 收藏 举报 androideclipseapplicationjdkjava ...
- NGUI: UIPanel控件
转自:http://blog.csdn.net/huang9012/article/details/19411703 http://bbs.9ria.com/thread-417659-1-1.htm ...
- map+pair Bayan 2015 Contest Warm Up D题
D. CGCDSSQ time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...
- mysql 添加列的索引
无论哪种模式加入索引.会大幅度增加SELECT速度 索引名:Index_User_Name 栏目名:user_name 索引类型:Nornal 索引方式:BTREE