2008年4月21日星期一

查找Quick Reference

在google中进行如下搜索:(以python为例)

python quick reference filetype:pdf

 

2008年4月18日星期五

带颜色的less命令

默认的less不带颜色输出。找到一个可以带颜色输出的less:

/usr/share/vim/vim64/macros/less.sh

 

注意:vimrc里面的syntax on必须去掉注释

2008年4月12日星期六

Linux启动多个X

startx默认以display :0.0启第一个X,通过传递参数给Xserver可以启多个X:

# startx -- :1.0

# startx -- :2.0

...

然后用Ctrl-Alt-F7/F8...切换

2008年4月10日星期四

bash的冒号用法

冒号(:)命令是bash的内建命令,通常把它看作true命令。bash的help解释(help :)为:No effect; the command does nothing.  A zero exit code is returned.(没有效果,该命令是空操作,退出状态总是0)。

用途

1、注释

: this is comment

: ' this is a multiple
lines comment.'

将注释作为参数传递给冒号命令, 因为没有输出所以可以当作注释阿,够巧妙吧。

2、清空文件

: > file

2008年4月9日星期三

Unix编程的port占用问题

在Linux下编写网络程序,当网络服务进程关掉的时候,再立即启动该服务,会有错误提示说port被占用了,监听失败。

《unix 网络编程》第二章 2.7介绍了TIME_WAIT状态,这个状态时间是TCP里最长的,是二倍MSL时间,大约在1-4分钟。

这样的问题是可以解决的,使用SO_REUSEADDR    enables local address reuse,可以在TIME_WAIT状态下使用相同的PORT。

int reuser_addr = 1;
 ::setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const void*)&reuse_addr, sizeof(reuse_addr));

SO_REUSEADDR 的用途除了上面这种情况,还有三种分别是:
*)在多网卡的时候,多进程可以使用不同IP,相同PORT。
*)与上条差不多,在单进程使用使用不同IP,相同PORT。
*)在UDP广播的时候,可以在相同IP和PORT下使用,TCP则不行。