我的程序

Elisp 程序

我写了一些 Elisp 的程序,可以参考 Emacs 一个强大的平台

一个读取参数(配置)文件的C语言开发库

用于程序启动的时候,读取配置参数. 也可以作为通用的文件存储结构,类似 XML 的功能

Unix 下常用的写 log 的方式

编写服务器程序,经常要写日志文件,syslog 是一种比较灵活的方式,这个例子介绍了 使用 syslog 的程序。

打开一个 UDP socket 的例子程序

这是一个建立 UDP socket 的例子程序。这个 UDP socket 不同于一般常用的 UDP socket , 他调用了 connect 函数,让 UDP socket 可以专门和某一个主机通信。 至于为什么 UDP 也可以是 "有连接的" , 参见 SocketNote

UDP Server

这个程序可以用来建立点对多点 UDP 通信模型. 在编写 MGCP 等类似的 UDP 的通信程序的时候, 会碰到一个问题,就是只有一 个 socket 和所有的client 通信,每次接收 packet 的时候,都 要判断是谁发过来的 packet ,然后把packet 分发到不同的处理 程序中. UDP Server 解决这个问题, Server 端程序中对每一个 client 的处理函数有单独的 file descriptor or socket 用来 和 client 通信.

一个用 C 语言实现一些 Lisp 的概念

学习 Lisp 之后,对 Lisp 优美的程序留下很深印象, C 语言的 程序也可以从中模仿一些东西, 例如:

;; 对 list 倒序
(reduce 'cons a-list nil)
;; 对  list 求和
(reduce '+ a-list 0)

由于 C 语言的限制,没有办法提供动态类型和垃圾回收,需要大量的类型转换和内存管理.

我写的一个程序:一个求以 2 为底的对数。