摘要: 好的东西,推荐给大家!希望大家每一天都有新的发现!【Software:GooReader】 Google Books里有很多值得一读的好书,不过网页版用户体验做的确实是差了点,不仅有点卡还让你感觉不出是在读一本书。 好在有GooReader,这个Windows下的应用程序可以让你直接搜索Google Books里的图书,并在书架上直接阅读,带有绿色书签的书可以直接阅读,而红色标签的书则表示无法阅读全文(Google Books的限制)。打开一本书之后你可以缩放(不过不一定保证清晰,取决于Google的扫描质量),不过目前无法加书签也无法将一本书加入收藏。 GooReader有免费版和付费版,. 阅读全文
posted @ 2010-12-04 22:35 david++ 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 概述命令参数交互命令输出内容统计信息区进程信息区参考概述top命令和ps命令的基本作用是相同的,显示系统当前的进程和其它状况;但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供 了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用。内存使用和执行时间对任务进行排序;而且该命令的 很多特性都可以通过交互式命令或者在个人定制文件中进行设定。在后面的介绍中将把命令参数和交互命令分开讲述。命令参数top -hv | -bcisSH -d delay -n 阅读全文
posted @ 2010-09-17 01:34 david++ 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 【命令】time — 执行命令并计时 【格式】time [-p] command [arguments...] 【说明】 执行命令行"command [arguments...]",命令行执行结束时在标准输出中打印执行该命令行的时间统计结果,其统计结果包含以下数据: 1)实际时间(real time): 从command命令行开始执行到运行终止的消逝时间; 2)用户CPU时间(user CPU time): 命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和; 3)系统CPU时间(system CPU time): 命令执行完成花费的系统CPU时间,即命令在核心 阅读全文
posted @ 2009-11-12 20:16 david++ 阅读(20999) 评论(0) 推荐(2) 编辑
摘要: Prototype模式去掉Clone方法意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。结构图:Prototype的主要缺陷是每一个Prototype的子类都必须实现Clone操作,这很烦。一般都这样实现:Prototype* ConcretePrototype::Clone(){return new ConcretePrototype(*this);}现在想去掉这个重复的操作,结构图如下:实现如下:class PrototypeWrapper{public:~PrototypeWrapper() {}virtual Prototype* clone() = 0;};te 阅读全文
posted @ 2009-10-12 22:02 david++ 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 使用SED编辑器 (作者:Emmett Dulaney)SED用法使用sed在文件中定位文本的方式:xx为一行号,如1x,y表示行号范围从x到y,如2,5表示从第2行到第5行/pattern/查询包含模式的行。例如/disk/或/[a-z]//pattern/pattern/查询包含两个模式的行。例如/disk/disks//pattern/,x在给定行号上查询包含模式的行。如/ribbon/,3x,/pattern/通过行号和模式查询匹配行。3,/vdu/x,y!查询不包含指定行号x和y的行。1,2!sed编辑命令:p打印匹配行'[adress[, address]]p'=显 阅读全文
posted @ 2009-10-07 19:35 david++ 阅读(509) 评论(0) 推荐(0) 编辑
摘要: 编译时断言和运行时断言通常为了检测一些条件,我们往往在程序里面加断言。一般只在DEBUG版有效,RELEASE版断言不生成任何代码。C++可以使用两种断言: 静态断言和动态断言,即就是运行期断言和编译期断言!顾名思义,运行期断言是在程序运行过程中判断指定的条件,若条件满足,万事OK,若断言失败,则程序给出提示然后被abort掉;编译期断言是在编译时候检查条件是否满足,不满足情况下,编译器给出错误提示(需要人为实现),只要条件不成立,程序是编译不过的。静态断言,BOOST库有实现(boost/static_assert.hpp),主要原理就是根据"sizeof(不完整类型)" 阅读全文
posted @ 2009-08-26 18:15 david++ 阅读(2497) 评论(0) 推荐(0) 编辑
摘要: Kernel. EXPORT_SYMBOL解析Code Segment:include/module.h:struct kernel_symbol { unsigned long value; const char *name;};/* For every exported symbol, place a struct in the __ksymtab section */#define __EXPORT_SYMBOL(sym, sec) \ __CRC_SYMBOL(sym, sec) \ static const char __kstrtab_##sym[] \ __attribute__ 阅读全文
posted @ 2009-04-01 23:04 david++ 阅读(5374) 评论(0) 推荐(1) 编辑
摘要: Linux线程技术的概念与技术发展Linux是一个多用户、多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。在操作系统设计上,从进程(Process)演化出线程(Thread),最主要的目的就是更好地支持多处理器,并且减小(进程/线程)上下文切换的开销。进程和线程的关系根据操作系统的定义,进程是系统资源管理的最小单位,线程是程序执行的最小单位。线程和进程十分相似,不同的只是线程比进程小。首先,线程采用了多个线程可共享资源的设计思想。例如,它们的操作大部分都是在同一地址空间进行的。其次,从一个 阅读全文
posted @ 2009-02-26 19:33 david++ 阅读(869) 评论(0) 推荐(1) 编辑
摘要: 深入Pthread(五):线程属性 线程属性相关API phtread_attr_t attr; int pthread_attr_init(pthread_attr_t* attr); int pthread_attr_destroy(pthread_attr_t* attr); int pthread_attr_getdetachstate(pthread_attr_t* attr, int* detachstate); int pthread_attr_setdetachstate(pthread_attr_t* attr, int detachstate); #ifdef _POSIX 阅读全文
posted @ 2009-02-18 19:31 david++ 阅读(2507) 评论(0) 推荐(0) 编辑
摘要: 深入Pthread(四):一次初始化-pthread_once_t用到的API:pthread_once_t once_control = PTHREAD_ONCE_INIT;int pthread_once(pthread_once_t* once_control, void (*init_routine)(void));有些事需要一次且仅需要一次执行。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始化(pthread_once_t)会比较容易些。例程:#include <pthread.h 阅读全文
posted @ 2009-02-16 18:27 david++ 阅读(9005) 评论(0) 推荐(1) 编辑