towSum

题目

给定一个整数数组, 返回其中两个数的索引号, 使得这两个数相加等于另一个特定的数.

假设对于每一个输入, 只有一个正确的解, 而且同一个元素不能使用两次.

阅读全文

Hello Linux Module

Linux的宏内核架构使得内核的体积越来越大,为了解决这个问题,内核使用了一种模块机制。模块作为内核的可以被动态装入与卸出的组成部分,可以在需要时动态的链接到运行中的内核中,而在不需要时又从内核中卸出。因此模块的使用大大减少了Linux内核的体积。
正因为内核模块在运行时是动态链接到当前运行的内核中的,因此模块是内核的一部分,而不是一个独立的程序,模块开发在一定意义上来说就是内核开发。
本文不就Linux内核模块的实现机制做介绍,而只是给出内核模块的完整模型描述,然后以一个具体的helloworkd模块来使读者实际感受内核模块的编写,编译和运行。

阅读全文

Go中的可变参数

首先什么是可变参数?可变参数,英文名称是:Varargs,一般指一个函数可以接受任意个数的参数,很多编程语言都支持可变参数,可变参数在某些特殊情况下可以简化编程的复杂度。

下面是Go中可变参数的一个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main
import "fmt"
func foo(prefix string, who ...string) {
fmt.Println(prefix)
for name, _ := range who {
fmt.Println(name)
}
}
func main() {
foo("hello", "hao1", "hao2", "hao3")
foo("hello", []string{"hao1", "hao2", "hao3"}...)
}

阅读全文

新的博客

我这个人平时比较纠结,这表现在对博客的选择上就是反反复复,以前用过好多博客系统:托管的、自建的等等,但都是过几天就觉得不完美,所以过后往往就是把那个博客废了,然后过一段时间再建一个新的。

上一个博客用的算是时间比较久的了,但是其实总共也还不到一年,并且后来也是觉得不喜欢了,所以就荒废了。但是技术人员总归还是需要一个博客的,在上一个博客荒废的这段时间里,我的一些技术总结大都记录在了我的个人Wiki上,说起来Wiki系统我也是换了好几个了,现在暂时用着Gitit,平时使用时自己对源代码做一些小的修改,将就着用。

阅读全文