seascope代码阅读器支持编辑补丁

Seascope 是一个pyQt写的代码阅读工具,在linux原来的kscope其实功能很强大,绝对可比source Insight,不过,kde到4之后就没维护了,后来偶遇seascope,不过当时是0.3版本,代码显示的时候字体不能改变,文件也是只读,没法编辑,不过函数定义,引用等搜索功能确是完整的,但是下下来用了用不是很方便编辑就不了了之了。

前两天同事又问linux下面代码阅读工具,就又去看了看,发现出0.4版本了,下载来看了下变化比较大,不过编辑功能还是没有啊,看了看是pyQt,正好自己还是想深入学习下python,那看看能不能自己改改呢 ? 两天努力下来还真基本给实现了,支持一般的代码编辑器的编辑功能了,保存文件也基本可以工作了,不过可能有一些小bug ,patch邮件给了原作者,不过不知道作者会不会接受了。

这里给出patch

diff -purN seascope-0.4/src/Seascope.py seascope-0.4-dbh/src/Seascope.py
--- seascope-0.4/src/Seascope.py    2011-12-15 …
more ...

关于linux文件系统的sync,async, sync/fsync 命令

linux默认情况下几乎所有应用场合都是不会将文件立马保存入磁盘的,在嵌入式上也是同样的表现,如果mount时候加上sync选项就可以保证数据立马写入,但是这种会造成系统较多的写入磁盘,磁盘的寿命就不会太长了,如果是需要保存数据,可以显式调用命令sync来写入所有文件,或者fsync来保存某个文件。

more ...

shell获取进程ID的方法: pidof | pgrep | ps-A+grep+awk

shell获取进程ID的方法:

我知道和实践过的有这么三种:

  1.  ps -A |grep "cmdname"| awk '{print $1}'
  2.  pidof "cmdname"
  3.  pgrep "cmdname"

这三种在bash和busybox ash里面的运行结果稍有不同,

第一种完全相同,但是因为调用命令次数较多,性能上是不行的。

第二种: pidof 只能获取程序的文件名匹配到的进程号,在ash中 比如 pidof "usr/bin/telnetd" 和 pidof "telnetd"中结果不一样, 前一种结果为空,但是在bash中执行两者一样。

第三种: pgrep跟1的效果相同,因为是单一命令,比第一种性能要好得多。

所以nanoRC就改进为pgrep。

more ...

linux编程库libevent

libevent – an event notification library

发现一个跨平台的event库:

The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts.

Libevent additionally provides a sophisticated framework …

more ...