刘森林 原创作品转载请注明出处
《Linux内核分析》MOOC课程博客目录第一周:计算机是如何工作的
第二周:完成一个简单的时间片轮转多道程序内核代码
第三周:Linux内核启动分析过程
第四周:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
第五周:分析system_call中断处理过程
第六周: 分析fork函数对应的系统调用处理过程
第七周:分析exec*函数...
分类:
系统相关 时间:
2016-04-29 15:46:58
阅读次数:
307
设计与声明
所谓软件设计,是“令软件做出你希望它做的事情”的步骤和方法,通常以颇为一般性的构想开始,最终十足的细节,以允许特殊接口(interface)的开发。这些接口而后必须转换为C++声明式。本文讨论对良好C++接口的设计和声明。
1. 让接口容易被正确使用,不易被误用
C++拥有许多的接口,function接口,class接口,template接口….每一种接口实施客户与你的代码互动的...
分类:
编程语言 时间:
2016-04-29 15:47:50
阅读次数:
211
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。FreeMarker被设计用来生成HTMLWeb页面,特别是基于MVC模式的应用程序。
所谓模板,就是一份已经写好了基本内容,有着固定格式的文档,其中空出或者用占位符标识的内容,由使用者来填充,不同的使用者给出的数据是不同的。在模板中的占位符,在模板运行时,由模板引擎来解析模板,并采用动...
分类:
其他好文 时间:
2016-04-29 15:48:08
阅读次数:
131
本节介绍如何把多个数据源的数据组合为一个数据源的操作函数。
Concatenation
一个数据流发射完后继续发射下一个数据流是一种很常见的组合方法。
concat
concat 操作函数把多个数据流按照顺序一个一个的发射数据。第一个数据流发射完后,继续发射下一个。 concat 函数有多个重载函数:
public static final Observable concat(...
分类:
编程语言 时间:
2016-04-29 15:49:31
阅读次数:
1185
继承
在现实生活中有所谓的“种瓜得瓜、种豆得豆”的说法,在生物学概念上就是“遗传”的概念,在面向对象中“继承”就类似于生物学中的遗传,通过继承,可以更好的实现代码的重用(复用,多次使用的意思)、增加扩展性、简化代码等。
下面是现实生活中的引用:
定义与使用继承
继承一次最常用的就是通过合法程序(比如遗嘱)从别人那里接受财产或爵位等,有点类似于世袭制。
另外一...
Redis tomcat nginx 实现session共享
redis3.1 tomcat7 nginx 1.8.1
jar包 jedis-2.7.2.jar tomcat-redis-session-manage-tomcat7.jar commons-pool2-2.4.2.jar
Redis安装在fedora中
一、将redis设置主从服务器h...
分类:
其他好文 时间:
2016-04-29 15:48:34
阅读次数:
153
使用IAudio2SourceVoice->SubmitSourceBuffer来提交音频数据,会有一个数据队列,可以使用XAUDIO2_VOICE_STATE来获取状态,可以看到当前待播放的等待队列中还有多少Buff,提交音频数据过快的话,会导致程序崩溃,应该是因为下面的buffer最大值限制:
// Numeric boundary values
#define XAUDIO2_M...
分类:
其他好文 时间:
2016-04-29 15:48:03
阅读次数:
481
题目意思清晰明了:求两个数的商,不能使用乘法,除法或者求模运算等等。看似很简单的一道题,可是在排行榜上的正确率却是最低的一道,原因是情况很复杂,边界很难控制。需要考虑到的细节特别多,如:正负号,除数和被除数的取值,还有就是越界情况。其中越界情况最难考虑到,我也给拉低这道题的正确率增加了一份”功劳“,真的测试了好几遍才将条件考虑全面,我的代码中写有很多注释(大部分以测试用例形式给出)可以帮助大家分析...
分类:
其他好文 时间:
2016-04-29 15:47:25
阅读次数:
208
1、和团队共享文件:创建工作目录,并创建一个用户组管理该目录。
$ sudo groupadd workgroup ##新建用户组命名为workgroup
$ sudo useradd -G workgroup lucy ##新建用户lucy并归入workgroup组
$ sudo passwd lucy ##为lucy设置密码
$ cd /home ##切换目录
$...
分类:
系统相关 时间:
2016-04-29 15:48:34
阅读次数:
218
在android studio中是有内置的上传项目到Github的,但是一直上传失败,只能上传项目的名称,但是代码上传不了,所以使用了Github for windows
一:下载GitHub for Windows 2.0
二:安装GitHub
下载之后点击进行安装过程,安装之后桌面上会有两个图标,分别是 和
。
...
从最简单的一个http请求开发,根据TCP/IP协议,分开来看每一层的数据帧结构,以及它们是怎样承担起网络服务得。
协议栈
因特网协议栈共有五层:
1.应用层,是网络应用程序及其应用层协议存留的地方。因特网的应用层包括许多协议,常见的有HTTP(它为web文档提供了请求和传送)、SMTP(它提供了电子邮件报文的传输)和FTP(它提供了两个端系统之间的文件传送)。
2.传输层,负责为信源和信...
分类:
Web程序 时间:
2016-04-29 15:46:14
阅读次数:
316
扩展 Lua 的基本方法之一就是为应用程序注册新的 C 函数到 Lua中去。
当我们提到 Lua 可以调用 C 函数,不是指 Lua 可以调用任何类型的 C 函数(有一些包可以让 Lua 调用任意的 C 函数,但缺乏便捷和健壮性)。正如我们前面所看到的,当C 调用 Lua函数的时候,必须遵循一些简单的协议来传递参数和获取返回结果。相似的, 从Lua 中调用 C 函数,也必须遵循一些协议来传递参数和获得返回结果。另外,从 Lua 调用 C 函数我们必须注册函数,也就是说,我们必须把C 函数的地...
分类:
其他好文 时间:
2016-04-29 15:47:33
阅读次数:
217
从百度上得知:
这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性!
所以有这样的一个接口,那就很牛逼了,至少可以做个游戏来玩下,结合ASCII码,很容易写个方向键控制的2048或者贪吃蛇等等有趣的游戏出来。
以下是以一个简单的例子:
你会发现当你按下对应的按键的时候就会...
分类:
其他好文 时间:
2016-04-29 15:47:34
阅读次数:
146
昨天,收到 SenseTime公司面试官的电话面试(一天面了三家公司,收获挺多的),通话时间将近1个半小时,面试过程中暴露出很多知识上的漏洞,本篇文章针对面试过程中继承以及虚函数方面的知识做一总结,查缺补漏,希望多大家有帮助。
单继承下的虚函数表
//单继承下虚函数表:是如何组织的
class A{
public:
virtual void func(){
cout << "A::fun...
分类:
编程语言 时间:
2016-04-29 15:44:50
阅读次数:
231
揭开演讲恐惧的五大“秘密”...
分类:
其他好文 时间:
2016-04-29 15:44:41
阅读次数:
673
中断和异常
中断(interrupt)通常被定义为一个事件,该事件改编处理器执行的指令顺序。这样的事件与CPU芯片内部外部硬件电路产生电信号相对应。
中断通常分为同步中断(synchronous)中断和异步(asynchronous)中断:
同步中断是当指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断。
...
分类:
系统相关 时间:
2016-04-29 15:46:49
阅读次数:
239
Java虚拟机中没有byte类型
恩。。。怎么说呢,个人感觉这个说法有点儿唬人的意思。的确,当这个想法刚刚出现在我的脑海中的时候我觉得也有些胡扯,毕竟byte类型就在那里,怎么能说Java虚拟机中没有byte类型呢?
好吧,我来稍稍的解释一下。Java虚拟机对基本类型的操作基本都是在栈上完成的(这个是可信的,因为不是我说的)。我们知道,Java在处理一个语句的时候,首先它会先把用到的操作数...
分类:
编程语言 时间:
2016-04-29 15:46:01
阅读次数:
252