摘要: Posix线程中的线程属性pthread_attr_t主要包括scope属性、detach属性、堆栈地址、堆栈大小、优先级。在pthread_create中,把第二个参数设置为NULL的话,将采用默认的属性配置。pthread_attr_t的主要属性的意义如下:__detachstate,表示新线程是否与进程中其他线程脱离同步,如果设置为PTHREAD_CREATE_DETACHED则新线程不能用pthread_join()来同步,且在退出时自行释放所占用的资源。缺省为PTHREAD_CREATE_JOINABLE状态。这个属性也可以在线程创建并运行以后用pthread_detach()来设置 阅读全文
posted @ 2013-08-31 15:27 阿毛小猪 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 一、多线程调试多线程调试可能是问得最多的。其实,重要就是下面几个命令:info thread 查看当前进程的线程。thread 切换调试的线程为指定ID的线程。break file.c:100 thread all 在file.c文件第100行处为所有经过这里的线程设置断点。set scheduler-locking off|on|step,这个是问得最多的。在使用step或者continue命令调试当前被调试线程的时候,其他线程也是同时执行的,怎么只让被调试程序执行呢?通过这个命令就可以实现这个需求。off 不锁定任何线程,也就是所有线程都执行,这是默认值。on 只有当前被调试程序会执行。. 阅读全文
posted @ 2013-08-30 19:17 阿毛小猪 阅读(279) 评论(0) 推荐(0) 编辑
摘要: =============================================================== Linux core dump的祥细介绍和使用===============================================================我们在开发(或使用)一个程序时,最怕的就是程序莫明其妙地当掉。虽然系 统没事,但我们下次仍可能遇到相同的问题。于是这时操作系统就会把程序当掉 时的内存内容 dump 出来,让我们或是debugger 做为参考。这个动作就叫作 core dump。1.何谓 core?在使用半导体作为内存的... 阅读全文
posted @ 2013-08-30 19:06 阿毛小猪 阅读(418) 评论(0) 推荐(0) 编辑
摘要: getrlimit和setrlimit函数 每个进程都有一组资源限制,其中某一些可以用getrlimit和setrlimit函数查询和更改。#include#includeint getrlimit(int resource,struct rlimit *rlptr);int setrlimit(int resource,const struct rlimit rlptr);Both return: 0 if OK,nonzero on error两个函数 返回:若成功为0,出错为非0 对这两个函数的每一次调用都指定一个资源以及一个指向下列结构的指针。struct rlimit{rlim... 阅读全文
posted @ 2013-08-30 18:43 阿毛小猪 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 昨天发现一个负责处理观察者模式的基类工作失败,默认的N个观察者负责处理 发送的一些东西,其中提供一个内置接口移除观察者: def removeObserver(self, observer): if observer in self.observers: self.observers.remove(observer) logging.debug('remove %s', observer) else: logging.error('obj is %s , self obj is ' % (obs... 阅读全文
posted @ 2013-06-28 10:31 阿毛小猪 阅读(1104) 评论(0) 推荐(0) 编辑
摘要: yield self 阅读全文
posted @ 2013-06-13 19:31 阿毛小猪 阅读(2211) 评论(1) 推荐(0) 编辑
摘要: 一个小需求实现了从'System','PM', 'Database','Engine','Web','Link', 'Emergency','ADS'到<attr index="1" name="System" /><attr index="2" name="PM" /><attr index="3" name=" Databas 阅读全文
posted @ 2013-03-28 14:40 阿毛小猪 阅读(238) 评论(0) 推荐(0) 编辑
摘要: mknod指令:创建字符或者块设备文件【语 法】mknod [选项] [参数]【功能介绍】mknod指令用于创建Linux中的字符设备文件和块设备文件。【选项说明】选项功能-Z设置安全的上下文-m设置权限模式--help显示帮助信息--version显示版本信息【参数说明】参数功能文件名要创建的设备文件名类型指定要创建的设备文件的类型。支持的设备文件类型有b(块设备文件)、c或u(字符设备文件)和p(FIFO文件)主设备号指定设备文件的主设备号次设备号指定设备文件的次设备号【经验技巧】Linux系统中的设备文件都有主设备号和子设备号,主设备号表示设备类型,子设备号表示此类设备的编号。安装操作系 阅读全文
posted @ 2013-03-08 16:15 阿毛小猪 阅读(204) 评论(0) 推荐(0) 编辑
摘要: dmidecode这款软件允许你在Linux 系统下获取有关硬件方面的信息。Dmidecode 遵循 SMBIOS/DMI 标准,其输出的信息包括 BIOS、系统、主板、处理器、内存、缓存等等。偶发现这个工具很有用,就总结一下。一、Dmidecode简介DMI (Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。 SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。SMBIOS和DMI是由行业指导机构Deskt 阅读全文
posted @ 2013-03-08 15:28 阿毛小猪 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 在Linux下,驱动程序是内核的一部分,运行在内核态下,你可以将驱动静态的和内核编译在一起,这样的缺点是内核会比较大,而且如果驱动出错,会导致整个系统崩溃;也可以以module的方式编译,在需要的时候动态的载入。如果你编译过内核,应该记得在make menuconfig中,选项前面是可以选择和的,就分别表示"编译到内核中"和"编译成模块"。.下面介绍下模块,一个简单的“helloworld module”如下所示:/* hello-1.c - The simplest kernel module. */#include /* Needed by all 阅读全文
posted @ 2013-03-08 15:05 阿毛小猪 阅读(14892) 评论(0) 推荐(0) 编辑