摘要: Linux shell可通过查看/etc/mtab或者/proc/mounts文件来获取当前文件系统挂载信息,示例:程序内读取/etc/mtab或者/proc/mounts,解析字符串较为繁琐,可以使用mntent提供的方便函数:FILE *setmntent(const char *filenam... 阅读全文
posted @ 2014-12-03 16:55 子子午 阅读(3268) 评论(0) 推荐(0) 编辑
摘要: 如果查看Linux manual(例如,执行:man open),会发现文档中有这样的表达方式:read(2), write(2), lseek(2), fcntl(2)等,括号中的数值表达什么含义呢?可以通过命令:man 1 man 得到答案: 1 用户命令(如ls、ps等操作) 2 ... 阅读全文
posted @ 2014-12-01 18:16 子子午 阅读(479) 评论(0) 推荐(0) 编辑
摘要: D 不可中断睡眠(通常进程在进行I/O)R 运行中或者可运行状态(在运行队列中)S 可中断睡眠(等待event,进程idle中)T 进程停止(进程被trace或者进程被信号停止)X 进程死亡(应该永不可见)Z 僵尸进程(结束,但是父进程没有... 阅读全文
posted @ 2014-11-27 18:37 子子午 阅读(3341) 评论(0) 推荐(0) 编辑
摘要: (1)查看系统所有进程:标准格式: ps -e ps -ef ps -eF ps -elyBSD格式: ps ax ps axu(2)打印进程树 ps -ejH ps axjf(3)获得线程信息: ps -eLf ... 阅读全文
posted @ 2014-11-27 15:41 子子午 阅读(848) 评论(0) 推荐(0) 编辑
摘要: 有时候,读写文件并不想要使用系统缓存(page cache),此时 direct 文件读写就派上了用场,使用方法:(1)打开文件时,添加O_DIRECT参数:需要定义_GNU_SOURCE,否则找不到O_DIRECT宏定义示例片段:#define _GNU_SOURCE #include #inc... 阅读全文
posted @ 2014-11-27 13:57 子子午 阅读(6669) 评论(0) 推荐(0) 编辑
摘要: 一般情况下,想要通过终端长时间运行任务,需要使用nohup 或者 screen,如果不使用会怎么样呢?来测试一下描述:场景1:ssh登录机器,通过添加(&),启动任务到后台,通过exit命令退出,任务依然存在场景2:ssh登录机器,通过添加(&),启动任务到后台,直接关闭ssh终端(GUI 直接叉掉... 阅读全文
posted @ 2014-11-27 10:19 子子午 阅读(5459) 评论(0) 推荐(0) 编辑
摘要: 块设备挂载后,可以通过df 或者 mount命令查看设备的文件系统信息。然而,有时候需要在不挂载设备的情况下予以判断,此时可以使用如下的方法:(1)查看文件系统类型命令:file -sL /dev/testvg/lv0示例输出:/dev/testvg/lv0: Linux rev 1.0 ext2 ... 阅读全文
posted @ 2014-11-26 12:01 子子午 阅读(2110) 评论(0) 推荐(0) 编辑
摘要: ref: 算法导论基数排序是按数据位进行排序的算法,并且基数排序从最低有效位进行排序。排序过程:1) 按照第i(i初始为0)位数值对数据进行排序,对于i位相同的数据,不改变这些数据的相对位置。2) ++i,并重复上述操作,直到i等于数据的位数。问题一,为何不从最高有效位进行排序? 从最高有效位排序时最直观的想法:先按最高有效位进行排序,将有相同有效位数值的数据划为一组,在组内递归应用算法:查看下一个有效位,继续分组。需要注意的是,这里需要保存大量的中间信息(需要保留分组信息)。问题二,为何可以排序? 在排序过程中的不变量:如果算法已经过k位,则数据在K位上是有序的。 证明: 若数据在K位... 阅读全文
posted @ 2012-09-23 13:05 子子午 阅读(1062) 评论(0) 推荐(0) 编辑
摘要: 以下均针对于内核2.6.18在module.h 中 THIS_MODULE的定义如下:extern struct module __this_module;#define THIS_MODULE (&__this_module)即是保存了__this_module这个对象的地址,那这个__this_module在哪里定义呢?这就要从module的编译说起啦,如果编译过模块就会发现,会生成*.mod.c这样的一个文件,打开这个文件,就会发现,类似下面的定义:struct module __this_module__attribute__((section(".gnu.linko 阅读全文
posted @ 2012-07-06 12:47 子子午 阅读(8433) 评论(0) 推荐(1) 编辑
摘要: init()在Applet的生存周期中只调用一次,当Applet第一次load的时候调用这个函数,可以再这个函数中加载参数、初始化用户界面等。destroy()与init()类似,在Applet的生存周期中只调用一次,在回收Applet之前调用,可以用这个函数回收占用的资源start()在Applet的生存周期中可能被调用多次,浏览器或Applet Viewer(如Eclipse自带的Applet Viewer) 调用这个函数通知applet开始执行,Eclipse的Applet Viewer 会在窗口切换时调用这个函数(从其他窗口切换到applet窗口)。stop()在Applet的生存周期 阅读全文
posted @ 2012-03-21 16:41 子子午 阅读(3325) 评论(0) 推荐(0) 编辑